[સંગીત વગાડવાનો] ડેવિડ જે MALAN: બધા અધિકાર, આ CS50 છે. અને આ અઠવાડિયે એક છે. તેથી સપ્તાહ શૂન્ય કે છેલ્લા સમય યાદ, અમે કોમ્પ્યુટેશનલ વિચાર પર ધ્યાન કેન્દ્રિત કર્યું. અને અમે તે થી સંક્રમિત સ્ક્રેચ, ગ્રાફિકલ પ્રોગ્રામિંગ અમારા મિત્રો ભાષા એમઆઇટી મીડિયા લેબ ખાતે. અને શરૂઆતથી સાથે, અમે અન્વેષણ હતી વિધેયો જેમ વિચારો, અને શરતો અને આંટીઓ, અને ચલો, અને તે પણ ઘટનાઓ, અને થ્રેડો, અને વધુ. અને આજે, અમે જઈ રહ્યાં છો તે વિચારો મદદથી ચાલુ રાખવા માટે, અને ખરેખર તેમને માટે લઈ મંજૂર છે, પરંતુ તેને અનુવાદિત સી હવે તરીકે ઓળખાય અન્ય ભાષામાં, સી વધુ પરંપરાગત ભાષા છે. તે નીચા સ્તરે છે ભાષા, જો તમે કરશે. તે કેવળ શાબ્દિક છે. અને તેથી પ્રથમ નજરમાં, તે બધા બદલે ભેદી જોવા જઈ જો તમે પહેલાં ક્યારેય પ્રોગ્રામ છે. અમે હોય રહ્યા છીએ અર્ધ કોલોન ':', અને કૌંસ, અને સર્પાકાર કૌંસ, અને વધુ. પરંતુ ખ્યાલ છે કે છતાં વાક્યરચના છે વિશે થોડું અજાણ્યા જોવા માટે તમે મોટા ભાગના માટે, ભૂતકાળમાં કે જુઓ. અને વિચારો જોવા માટે પ્રયાસ છે, ખરેખર, પરિચિત, કારણ કે સપ્તાહમાં અહીં શું અમે શું સરખાવી છે શરૂ કરીશું શરૂઆતમાં, સી વિરુદ્ધ સ્ક્રેચ તેથી, ઉદાહરણ તરીકે, યાદ છે કે જ્યારે અમે અમલમાં અમારા કાર્યક્રમો પ્રથમ છેલ્લા સમય, અમે એક બ્લોક દેખાતો હતો થોડી કંઈક છે આ જ્યારે જેવી લીલો ધ્વજ ક્લિક કર્યું છે, અને પછી અમે હતી એક તેને નીચેના અથવા વધુ પઝલ ટુકડાઓ, આ કિસ્સામાં, કહે છે, હેલો વર્લ્ડ. તેથી, ખરેખર, સ્ક્રેચ માં, જ્યારે હું કે લીલો ધ્વજ ક્લિક કરો મારા કાર્યક્રમ ચલાવવા માટે, જેથી વાત કરવા માટે, આ છે બ્લોકો કે ચલાવવામાં કરો, અથવા રન નોંધાયો નહીં. અને, ખાસ કરીને, સ્ક્રેચ જણાવ્યું હતું કે, હેલો, વિશ્વ. હવે, હું સ્પષ્ટ કરી શકે છે અહીં વિવિધ શબ્દો. પરંતુ અમે જોશો કે, ખરેખર, ઘણા આ blocks-- અને ખરેખર, સી માં ઘણા કાર્યો કરી શકાય છે parametrized અથવા વૈવિધ્યપૂર્ણ વિવિધ વસ્તુઓ કરવા માટે. હકીકતમાં, અમે તો સી કન્વર્ટ કરવા માટે, હવે માંગો છો, આ સ્ક્રેચ કાર્યક્રમ આ અન્ય ભાષામાં, અમે લખી રહ્યા છીએ આ જેમ થોડી કંઈક. મંજૂર છે, ત્યાં કેટલાક અજાણ્યા છે ત્યાં વાક્યરચના મોટા ભાગે, પૂર્ણાંક, અને કૌંસ, અને રદબાતલ. છતાં તમે કરશે પણ printf-- લાગે છે કે તે માત્ર પ્રિન્ટ હશે. પરંતુ પ્રિન્ટ અર્થ એ થાય પ્રિન્ટ , બંધારણ, કારણ કે અમે ટૂંક સમયમાં જોવા મળશે. આ શાબ્દિક છાપશે સ્ક્રીન પર ગમે તે કૌંસ ની અંદર છે, જે અલબત્ત આ કિસ્સામાં, હેલો વર્લ્ડ છે. પરંતુ તમે કેટલાક અન્ય નોટિસ પડશે વાક્યરચના, કેટલાક ડબલ અવતરણ, કે ઓવરને અંતે કૌંસ, અર્ધવિરામ અને ગમે છે. તેથી ત્યાં ઓવરહેડ એક બીટ છે, તેથી વાત કરવા માટે, બંને હેતુપૂર્વક અને વાક્યરચના અનુસાર, અમે જઈ રહ્યાં છો કે લાંબા પહેલાં યાદ હોય છે. પરંતુ ખ્યાલ છે કે અભ્યાસ સાથે, આ તમે બહાર કૂદી શરૂ થશે. હકીકતમાં, ચાલો કે એક પર ધ્યાન કેન્દ્રિત દો કાર્ય આ કિસ્સામાં specifically--, કહે છે હેલો વર્લ્ડ. તેથી કહે છે કાર્ય છે. હેલો વર્લ્ડ તેના પરિમાણ છે, અથવા દલીલ, તેના વૈવિધ્યપણું. અને સી સમકક્ષતા માત્ર છે અહીં આ એક વાક્ય હોઈ ચાલે, જ્યાં printf માટે સમકક્ષ છે, કહે છે, ડબલ નોંધાયેલા શબ્દમાળા, હેલો વિશ્વ, સમકક્ષ છે, અલબત્ત, શું ત્યાં સફેદ બોક્સ છે માટે. અને બેકસ્લેશ n એ, છતાં થોડી વિચિત્ર અને શરૂઆતથી ગેરહાજર, ખાલી અસર અમે પડશે રહ્યું છે કમ્પ્યુટર જુઓ, મારા મેક અથવા પીસી જેવા, માત્ર ખસેડવાની આગળની લીટી પર કર્સર. તે હિટ જેવું છે તમારા કીબોર્ડ પર દાખલ કરો. તેથી અમે તે ફરીથી પહેલાં લાંબા જોશો. પરંતુ પ્રથમ, ચાલો આ પર એક નજર કરીએ આંટીઓ કિસ્સામાં અન્ય ઉદાહરણ છે. અમે છેલ્લા સમય આ કાયમ લૂપ હતી, જે પઝલ ટુકડાઓ એક શ્રેણી હતી કંઈક કે જે શાબ્દિક હતી આ કિસ્સામાં forever--, કહે છે, હેલો વર્લ્ડ, હેલો વર્લ્ડ, હેલો વર્લ્ડ, હેલો વર્લ્ડ. તેથી તે ડિઝાઇન દ્વારા એક અનંત લૂપ છે. સી, અમે આ અમલ કરવા માંગો છો, તો એ જ વિચાર, અમે ફક્ત આ કરી શકે છે. જ્યારે સાચું, printf હેલો હવે world-- જ્યારે, માત્ર અર્થનિર્ધારણ, પ્રકારની કરી ના વિચાર અપ conjures કંઈક ફરી, અને ફરી, અને ફરીથી, અને લાંબા કેવી રીતે? વેલ, true-- યાદ સાચું માત્ર પર અથવા એક છે. અને સાચું, અલબત્ત, હંમેશા સાચું છે. તેથી તે એક અર્થહીન પ્રકારની છે નિવેદન માત્ર સાચી કહે છે. પરંતુ ખરેખર, આ ઇરાદાપૂર્વકની છે, કારણ કે જો સાચું માત્ર હંમેશા સાચું છે, કરતાં જ્યારે સાચું માત્ર બતાવે છે, થોડી તો આડકતરી રીતે તે કોડ નીચેની લીટીઓ તે સર્પાકાર કૌંસ વચ્ચે માત્ર ફરીથી અને ફરીથી ચલાવવા જોઈએ, અને ફરી, અને ખરેખર ક્યારેય બંધ. પરંતુ જો તમે ઇચ્છો તો તમારા લૂપ અમે અટકાવવા માટે, કંઈક સાથે છેલ્લા સમય હતી આ, પુનરાવર્તન નીચેના 50 વખત સી અમે શું સાથે જ કરી શકે છે શબ્દ લૂપ માટે કહેવાય જ્યારે, પરંતુ નથી છે. અને પછી અમે અહીં કેટલાક નવા વાક્યરચના છે પૂર્ણાંક સાથે હું 0 હું 50 કરતાં ઓછી બરાબર, હું ++. અને અમે પાછા કે આવવું પડશે. પરંતુ આ ફક્ત અમે કેવી રીતે કરશે સ્ક્રેચ બ્લોકની સમૂહ ભાષાંતર કોડ સી રેખાઓ સુયોજિત કરવા માટે. દરમિયાન, ચલો માને છે. અને હકીકતમાં, અમે હમણાં જ એક ક્ષણ પહેલા જોયું. અને શરૂઆતથી કિસ્સામાં, જો આપણે એક હું કહેવાય ચલ જાહેર કરવા માગે છે હું પૂર્ણાંક હોવા માટે, માત્ર એક નંબર, અને અમે કેટલાક કિંમત માટે સુયોજિત કરવા માંગો છો, અમે આ નારંગી ઉપયોગ કરશે અવરોધિત અહીં હું 0 માં સુયોજિત. અને આજે આપણે જોશો અને ઉપરાંત, માત્ર છેલ્લા અઠવાડિયે જેમ, પ્રોગ્રામરો લગભગ હંમેશા આવું શૂન્ય માંથી ગણતરી શરૂ, ખરેખર સંમેલન દ્વારા. પણ રિકોલ કારણે બાઈનરી અમારી ચર્ચા, નાના નંબર તમે કરી શકો છો બિટ્સ કોઈપણ નંબર સાથે પ્રતિનિધિત્વ માત્ર 0 પોતે હોઈ ચાલે છે. અને તેથી અમે સામાન્ય રીતે શરૂ કરી શકશો 0 પણ અમારા ચલો પ્રારંભ. અને સી, તે જ કરવું અમે પૂર્ણાંક કહી રહ્યા છીએ પૂર્ણાંક માટે, હું હમણાં જ સંમેલન દ્વારા. હું આ ચલ કહેવાય છે શકે છે કંઈપણ હું માંગો છો, માત્ર સ્ક્રેચ જેમ. અને પછી બરાબર 0 માત્ર સોંપે જમણેથી કિંમત 0 અને તે ચલ માં મૂકે છે, અથવા સંગ્રહ કન્ટેનર ત્યાં ડાબી પર. અને અર્ધવિરામ કારણ કે અમે see-- પડશે અને અમે આ પહેલેથી થોડા જોઇ છે માત્ર વિચાર અંત થાય છે. બીજું કંઈક કરવા માટે આગળ ધપાવો લીટીઓ કે જે અનુસરે છે. હવે, શું બુલિયન સમીકરણો વિશે? જણાવ્યું હતું કે સ્ક્રેચ માં, આ સમીકરણો હતા ક્યાં સાચું છે કે કે ખોટી આપે પ્રશ્નો, ખરેખર, સાચું કે ખોટું ક્યાં છે. તેથી સ્ક્રેચ કિસ્સામાં, અમે કદાચ આ જેવું સરળ પ્રશ્ન પૂછો, હું 50 કરતાં ઓછી હોય છે? તેથી હું, ફરી, પૂર્ણાંક છે. કદાચ અમે તે ઉપયોગ કરી રહ્યાં છો એક સ્ક્રેચ કાર્યક્રમ સ્કોર ટ્રેક રાખવા માટે અથવા તે કંઈક. તેથી આ વાક્યરચના અહીં સ્ક્રેચ માત્ર અર્થ એ થાય, હું 50 કરતાં ઓછી હોય છે? વેલ, thankfully, કંઈક છે સી માં અને અનુવાદ માટે સરળ, આ અમે ફક્ત હું ઓછી કહે છે 50 કરતાં, પરિચિત કી મદદથી તમારા કીબોર્ડ પર. દરમિયાન, તમે ઇચ્છતા હોય તો કંઈક વધુ સામાન્ય કહે છે, જેમ કે, સારી રીતે, X વાય જ્યાં દરેક કરતાં ઓછી છે એક્સ અને વાય પોતાને ચલો છે? અમે એ જ વસ્તુ કરી શકો છો સી, જેથી લાંબા અમે કરી છે આ ચલો પહેલેથી જ બનાવનાર. અને અમે કેવી રીતે જોવા મળશે પહેલાં લાંબા નથી. અમે ફક્ત X વાય કરતાં ઓછી કહે છે. તેથી તમે શરૂ કરી રહ્યાં છો કેટલાક સમાનતા જોવા મળે છે. અને તે લોકો કે જેઓ કરવામાં સ્ક્રેચ ચોક્કસપણે હતા આ મૂળભૂત અમુક વિચારોની દ્વારા પ્રેરિત છે. અને તમે આ પ્રકારની જોશો ઘણા languages-- માં વાક્યરચના માત્ર શરૂઆતથી, નથી માત્ર સી, પરંતુ પાયથોન અને જાવાસ્ક્રિપ્ટ, અને હજુ પણ અન્ય ભાષાઓ છે. માતાનો અન્ય રચના વિચાર કરીએ સી, એક શરત ની કલ્પના, કંઈક શરતે કરી. જો કંઈક સાચું છે, આવું. જો કંઈક બીજું સાચું છે, કે શું. તે પ્રોગ્રામિંગ જેવું છે માર્ગ એક કાંટો ની સમકક્ષ. કદાચ તે બે માર્ગ કાંટો છે, ત્રણ માર્ગ કાંટો, અથવા વધુ. અને શરૂઆતથી, અમે છે શકે છે આ કંઈક જોવા મળે છે. તેથી આ એક મોટી એક છે. પરંતુ સંબંધિત વિચારણા તર્ક ની સરળતા. જો એક્સ વાય કરતાં ઓછી છે, તો પછી કહે છે એક્સ ઓછી છે વાય કરતાં, બીજું તો X વાય કરતાં વધારે હોય છે, પછી કહે X વાય કરતાં વધારે હોય છે. અને પછી, તાર્કિક, જો તમે ખંજવાળી પાછા લાગે અથવા ફક્ત તમારા પોતાના માનવ અંતર્જ્ઞાન, વેલ, એક્સ વાય કરતાં વધુ ન હોય તો, અને એક્સ વાય કરતાં ઓછી નથી, તો પછી કોર્સ છે X વાય સમાન હોવું રહ્યું છે. તેથી આ કિસ્સામાં, માળો દ્વારા તે શરૂઆતથી બ્લોક્સ, અમે ત્રણ પ્રાપ્ત કરી શકો છો માર્ગ રીતે કાંટો? દરમિયાન, અમે કરવા માંગો છો, તો દલીલમાં કરી છે કે સી, તે ઓછામાં ઓછા થોડી simpler-- લાગે એકવાર તમે વાક્યરચના સાથે પરિચિત મેળવો. જો એક્સ વાય કરતાં ઓછી છે, printf એક્સ વાય કરતાં ઓછી છે. બાકી જો એક્સ વાય કરતાં વધારે હોય છે, printf એક્સ વાય કરતાં વધારે હોય છે. બીજું printf એક્સ, વાય અને સમાન છે ફરીથી, સાથે તે બેકસ્લેશ માત્ર અંત તે નવી લાઇન માટે કે જેથી તમે ખરેખર કાર્યક્રમ આ પ્રકારની ચાલી તે માત્ર ખસેડશે તમારા કર્સરને આખરે સ્ક્રીન આગળના વાક્ય પર. હવે, આ દરમિયાન સ્ક્રેચ અન્ય હતી વધુ વ્યવહારદક્ષ લક્ષણો, માત્ર જેમાંથી કેટલાક અમે જઈ રહ્યાં છો શરૂઆતમાં સી વિશ્વમાં પર ખસેડો અને તેમને એક હતી સ્ક્રેચ એક યાદી તરીકે ઓળખાય છે. અને આ એક ખાસ હતી ચલનો પ્રકાર કે મંજૂરી તમે ઘણી વસ્તુઓ સંગ્રહવા માટે તે પાછળ પાછળ પાછળ પાછળ. સી, તે નથી યાદીઓ, સે દીઠ, પરંતુ કંઈક વધુ સામાન્ય છે કે એરે કહેવાય છે, જોકે અમે પડશે પાછા આવો આ સત્ર પછી કંઈક જોઈ યાદી, અથવા ખરેખર એક કડી થયેલ યાદી કહેવાય છે. પરંતુ હવે, નજીકના માટે અમારા માટે સી સમકક્ષ કંઈક હોઈ ચાલે છે ઝાકઝમાળ કહેવાય છે. અને ઝાકઝમાળ ખાલી છે ચલ ખાસ પ્રકાર કે જે તમે માહિતી સંગ્રહવા માટે પરવાનગી આપે પાછળ, પાછળ, પાછળ પાછળ. અને, ખરેખર, સ્ક્રેચ માં, અમે ઍક્સેસ કરવા ઇચ્છતા હોય તો એક એરે પ્રથમ તત્વ અથવા એક યાદી અને હું તેને કૉલ કરવા જઇ રહ્યો છું, સંમેલન, argv, દલીલ દ્વારા વેક્ટર, પરંતુ વધુ કે પર લાંબા પહેલાં. હું પ્રથમ તત્વ વિચાર કરવા માંગો છો, તો ના સ્ક્રેચ વિશ્વમાં argv, તમે ખરેખર ખાસ કરીને શું 1 થી ગણતરી શરૂ કરો. અને તેથી હું argv આઇટમ 1 મળી શકે છે. કે જે હમણાં જ કેવી રીતે એમઆઇટી અમલમાં છે યાદીઓ ની કલ્પના. પરંતુ સી, હું જાઉં છું વધુ સરળ ફક્ત કહે છે, argv, જે ફરીથી નામ છે મારા યાદી અથવા સ્પષ્ટ કરવા, ઝાકઝમાળ. અને હું માંગો છો, તો પ્રથમ તત્વો, હું જાઉં છું ચોરસ કૌંસ વાપરો, તો તમે જે ઘણીવાર કીબોર્ડ હેઠળ ઉપયોગ કરી શકે છે. પરંતુ 0 માત્ર અર્થ એ થાય, મને પ્રથમ વિચાર. તેથી પ્રસંગે અને સમય પસાર કરે છે, અમે જઈ રહ્યાં છો આ dichotomies જોવા માટે શરૂ કરવા માટે સ્ક્રેચ અને C વચ્ચે, જેમાં સ્ક્રેચ એક વાપરે છે. અમે સી અહીં 0 ઉપયોગ કરે છે. પરંતુ તમે ઝડપથી જોશો એકવાર તમે સમજો દરેક ભાષા પાયો, કે આ વસ્તુઓ તમામ વધુ વિચાર કરવાનું શરૂ કરો અભ્યાસ અને પ્રેક્ટિસ મારફતે પરિચિત. તેથી આપણે ખરેખર એક કાર્યક્રમ હવે જોવા દો. અહીં અમારા સી પ્રથમ રહેશે સંપૂર્ણ કાર્યક્રમો માટે સ્રોત કોડ. અને કાર્યક્રમ અમે જઈ રહ્યાં છો વિચારણા માટે તક આપે છે એક કે સમકક્ષ છે કે અગાઉ સ્ક્રેચ ભાગ છે. અહીં તેથી, અમે શું છે છે દલીલમાં સરળ સી કાર્યક્રમ તમે લખી શકો છો ખરેખર કંઈક કરે છે. હવે, અમે ભૂતકાળમાં જોવા મળશે, હવે માટે, સમાવેશ થાય છે, ધોરણ io.h, અને આ કોણ કૌંસ, અને પૂર્ણાંક, અને રદબાતલ, અને સર્પાકાર કૌંસ, અને જેમ. અને આપણે માત્ર પર ધ્યાન કેન્દ્રિત કરીએ શું, ઓછામાં ઓછા તર્ક, પહેલેથી જ તમે બહાર કૂદી શકે છે. હકીકતમાં, મુખ્ય, હું નથી જરૂરી ખબર છે કે આ શું છે, જ્યારે તે પણ સ્ક્રેચ જેમ જ હતી લીલો ધ્વજ પઝલ ભાગ ક્લિક કર્યું છે, તેથી પ્રોગ્રામિંગ ભાષા તરીકે સી કરે કોડ એક મુખ્ય ભાગ છે કે મૂળભૂત રીતે ચલાવવામાં નહીં. અને, ખરેખર, તે શાબ્દિક મુખ્ય કહેવાય રહ્યું છે. તેથી મુખ્ય કાર્ય છે. અને તે ખાસ કાર્ય અસ્તિત્વમાં છે સી જ્યારે તમે કાર્યક્રમ ચાલે છે કે, તે દ્વારા ચલાવવામાં નહીં મુખ્ય છે મૂળભૂત. સ્ક્રેચ વિશ્વમાં, તે સામાન્ય રીતે જ્યારે લીલો ધ્વજ હતી ક્લિક મૂળભુત રીતે ચાલે મળી હતી. દરમિયાન, અમે આ જોઇ છે તે પહેલાં, printf અથવા પ્રિન્ટ બંધારિત થયેલ છે, કે છે એક કાર્ય છે કે સાથે આવે છે હોઈ ચાલે સી, અન્ય એક સમગ્ર ટોળું સાથે, સમય અને સમય કે ઇચ્છા ફરીથી, ક્રમમાં બરાબર કરવું તેનું નામ સૂચવે છે, કંઈક છાપવા. શું આપણે પ્રિન્ટ કરવા માંગો છો નથી? વેલ, અમે જોશો કે બંધાયેલ અક્ષરો દ્વારા these-- હેલો વર્લ્ડ, જેમ અવતરણ બેકસ્લેશ n એ, અમે બરાબર printf કહી શકો છો સ્ક્રીન પર શું છાપો. પરંતુ ક્રમમાં કરવા માટે કે, અમે કમનસીબે કંઈક કે જે લેવાની જરૂર પહેલેથી જ અમને મનુષ્યો માટે ભેદી, પરંતુ ઓછામાં ઓછા તે કંઈક અંશે વાંચનીય છે તીવ્ર સમાવેશ થાય છે, પ્રમાણભૂત io.h, પૂર્ણાંક, મુખ્ય, ખાલીપણુ, printf, જાદુઈ તમામ અવતારો અમે માત્ર સ્ક્રીન પર જોવા મળી હતી. પરંતુ અમે ખરેખર છે હજુ પણ વધુ Arcane જાઓ. અમે પ્રથમ કોડ અનુવાદિત કરવાની જરૂર છે અમે મશીન કોડમાં લખી છે. અને છેલ્લા અઠવાડિયે યાદ છે કે મશીનો, ઓછામાં ઓછા રાશિઓ અમે અહીં ખબર છે, દિવસ ઓવરને અંતે માત્ર zeros અને મુદ્દાઓ સમજી. અને મારા દેવ, આ લખવા માટે તો અમે હતી zeros અને ખરેખર કાર્યક્રમ રાશિઓ, તે ખૂબ જ, ખૂબ જ ઝડપથી કરશે કંઈપણ બહાર મજા લે છે. પરંતુ તે તારણ, છેલ્લા અઠવાડિયે દીઠ, કે zeros અને શૈલીઓનો આ પેટર્ન માત્ર ખાસ અર્થ હોય છે. ચોક્કસ સંદર્ભોમાં, તેઓ નંબરો અર્થ શકે છે. કેટલાક સંદર્ભોમાં, તેઓ અર્થ શકે લેટર્સ, અથવા રંગ, અથવા કોઈપણ નંબર ત્યાં પર અન્ય અમૂર્ત. પરંતુ માત્ર કારણ કે તમારા કમ્પ્યુટર છે એક સીપીયુ, સેન્ટ્રલ પ્રોસેસિંગ યુનિટ, અથવા તમારા કમ્પ્યુટર ની અંદર વિશેષજ્ઞ. તે સામાન્ય રીતે ઇન્ટેલના અંદર, કે છે કારણ કે સૌથી મોટી કંપનીઓમાંની એક કે કમ્પ્યુટર્સ માટે સીપીયુ બનાવે છે. વેલ, ઇન્ટેલના સીપીયુને અને અન્ય ખાલી અગાઉથી નક્કી કર્યું છે કે zeros કેટલીક ચોક્કસ પ્રકારની પેટર્ન અને મુદ્દાઓ ચોક્કસ વસ્તુઓ અર્થ રહેશે. zeros અને શૈલીઓનો કેટલીક ચોક્કસ પ્રકારની પેટર્ન કરશે તેનો અર્થ, સ્ક્રીન પર આ છાપો, અથવા આ બે નંબરો ઉમેરો કરવા, અથવા આ બે નંબરો સબ્ટ્રેક્ટ, અથવા માહિતી આ ભાગ ખસેડવા મારા કમ્પ્યુટર મેમરી અહિ, અથવા અન્ય ખૂબ જ ઓછી સ્તર કોઈપણ નંબર પરંતુ આખરે ઉપયોગી કામગીરી. પરંતુ, thankfully, આપણે મનુષ્યો નથી જઈ રહ્યા છે વિગતવાર આ સ્તરની જાણવાની જરૂર છે. ખરેખર, માત્ર છેલ્લા સમય જેવી જ્યાં અમે ફરી, અને ફરી, અને ફરીથી શૂન્યમનસ્ક, ખૂબ જ ઓછી સ્તર ના મકાન zeros અને મુદ્દાઓ જેમ પૌરાણિક ઉચ્ચ સ્તર સમજો નંબરો, અને અક્ષરો જેમ, અને રંગો, અને વધુ તેથી અમે પ્રોગ્રામરો તરીકે કરી શકો છો ના ખભા પર ઊભા અન્ય લોકો અમને પહેલાં આવે છે અને સોફ્ટવેર છે કે જે અન્ય ઉપયોગ લોકો us-- પહેલાં લખ્યું છે એટલે કે કાર્યક્રમો કમ્પાઇલરોનો કહેવાય છે. સી ભાષા કે સામાન્ય રીતે સંકલિત છે, જેમાંથી રૂપાંતરિત થાય છે મશીન કોડ સ્ત્રોત કોડ. ખાસ કરીને, આ શું અર્થ છે કે તમે તમારા સ્રોત મળી છે, તો કોડ કે જે તમે તમારી જાતને અમે જલદી લખી, સ્ક્રીન પર માત્ર એક ક્ષણ માં, અને તમે તેને રૂપાંતરિત કરવા માંગો છો આખરે મશીન code-- તે zeros અને મુદ્દાઓ કે માત્ર તમારા Mac અથવા તમારા PC understands-- તમે પ્રથમ મળી છે કારણ કે તે સ્ત્રોત કોડ ફીડ ખાસ ઇનપુટ કાર્યક્રમ કમ્પાઇલર કહેવાય છે, જે આઉટપુટ અમે જોશે મશીન કોડ છે. અને, ખરેખર, છેલ્લા સમય અમે વાત કરી વિશે, ખરેખર, દિવસ ઓવરને અંતે, સમસ્યા ઉકેલવાની. તમે ઇનપુટ્સ મળી છે. અને તમે આઉટપુટ મળી છે. અને તમે અમુક પ્રકારના મળી છે મધ્યમાં અલ્ગોરિધમનો. ઍલ્ગરિધમ ચોક્કસ હોઈ શકે છે સોફ્ટવેર અમલમાં, અમે સ્યુડોકોડનો છેલ્લા અઠવાડિયે જોયું અને અમે વાસ્તવિક કોડ સાથે જોવા મળશે કારણ કે આ અઠવાડિયે. અને તેથી એક કમ્પાઇલર ખરેખર માત્ર અંદર ગાણિતીક નિયમો એક સમૂહ છે તે ખબર છે કે કેવી રીતે ખાસ કીવર્ડ્સ કન્વર્ટ, મુખ્ય, અને જેવા printf, અને અન્ય કે જે અમે માત્ર zeros પેટર્ન માં જોયું અને મુદ્દાઓ ઇન્ટેલ ઇનસાઇડ અને અન્ય સીપીયુ ખરેખર સમજે છે. તેથી અમે આ કેવી રીતે કરવું? અમે કમ્પાઇલર ક્યાંથી મળી શકું? અમને મોટા ભાગના માટે અહીં મેક અથવા પીસી હોય છે. અને તમે મેક ઓએસ ચાલી રહ્યાં છો, અથવા વિન્ડોઝ, અથવા Linux, અથવા સોલારિસ, અથવા અન્ય કોઈપણ નંબર ઓપેરેટીંગ સીસ્ટમ. અને, ખરેખર, અમે કરી શકે છે વેબ પર બહાર જવા અને કમ્પાઇલર ડાઉનલોડ તમારા Mac અથવા તમારા PC માટે તમારા ચોક્કસ ઓપરેટિંગ સિસ્ટમ છે. પરંતુ અમે બધા પર હશે વિવિધ પાનાંઓ, તેથી વાત કરવા માટે. અમે થોડી હોય લેતો વિવિધ રૂપરેખાંકનો. અને વસ્તુઓ બધા જ કામ કરશે. અને, ખરેખર, આ દિવસોમાં અમને ઘણા ઉપયોગ કરતા નથી માત્ર અમારી લેપટોપ પર ચાલે સોફ્ટવેર. તેના બદલે, અમે કંઈક ઉપયોગ એક બ્રાઉઝર જેવા કે અમને વાપરવા માટે પરવાનગી આપે વેબ આધારિત મેઘ કાર્યક્રમો. અને આ સત્ર પછી, અમે બરાબર છે કે કરશે. અમે કાર્યક્રમો લખશે અથવા સોફ્ટવેર code-- નથી મદદથી સી, પરંતુ પાયથોન જેવી અન્ય ભાષાઓ અને JavaScript-- કે વાદળ ચલાવો. અને જાતને તે કરવા માટે, અમે સત્ર દરમિયાન ખરેખર એક મેઘ આધારિત ઉપયોગ કરશે CS50 IDE તરીકે ઓળખાય પર્યાવરણ. આ વેબ આધારિત પ્રોગ્રામિંગ છે પર્યાવરણ, અથવા સંકલિત વિકાસ પર્યાવરણ, IDE, કે જે અમુક માથે બનેલ છે ઓપન સોર્સ સોફ્ટવેર મેઘ 9 કહેવાય છે. અને અમે કેટલાક શિક્ષણશાસ્ત્ર વિષયક કર્યા તે પ્રકારના સરળ ચોક્કસ લક્ષણો છુપાવવા માટે, જેથી પ્રથમ સપ્તાહ કે અમે જરૂર નથી, જે પછી તમે કરી શકો છો તેમને છતી અને શું સૌથી તમે કંઈપણ પર્યાવરણ સાથે માંગો છો. અને તે અમને ખૂબ પરવાનગી આપે છે, માટે, ચોક્કસ સોફ્ટવેર પૂર્વ સ્થાપિત કરો. એક કહેવાતા CS50 જેવી વસ્તુઓ પુસ્તકાલય છે, જે અમે ટૂંક સમયમાં જોવા મળશે કેટલાક સી અમને પૂરી પાડે છે વધારાના વિધેયો. તેથી તમે જાઓ તો, આખરે, CS50.io, તમે પ્રવેશ કરવા માટે પૂછવામાં આવશે અને એક વાર તમે શું અને બનાવવા મફત માટે એક એકાઉન્ટ, તમે ઍક્સેસ કરવા માટે સક્ષમ હશે પર્યાવરણ હોય છે કે ખૂબ આ જેવો દેખાય છે. હવે, આ મૂળભૂત સ્થિતિ છે. બધું સરસ છે અને સ્ક્રીન પર તેજસ્વી. અમને ઘણા એક આદત હોય છે CS50 ભાગ છે કે પર કામ ખૂબ અંતમાં રાત્રે. અને તેથી તમે કેટલાક પ્રાધાન્ય શકે છે તે રાત્રે સ્થિતિ માં ફેરવે છે, તેથી વાત કરવા માટે. પરંતુ, આખરે, તમે શું કરી રહ્યાં છો CS50 IDE અંદર જોવા જઈ ત્રણ અલગ areas-- છે બાકી જ્યાં પર વિસ્તાર તમારી ફાઇલોને હોઈ જતા હોય છે વાદળ, ટોચ જમણી બાજુ પર એક વિસ્તાર જ્યાં તમારો કોડ સંપાદનયોગ્ય હોઈ ચાલે છે. તમે ખોલવા માટે સમર્થ હશો કોઈ પણ કાર્યક્રમ માટે વ્યક્તિગત ટેબો તમે આ સત્ર અંદર લખે છે કે, કે જમણી ટોચ ખૂણે છે. અને પછી સૌથી arcanely, અને હજુ સુધી શક્તિશાળી, આ વસ્તુ હોઈ ચાલે છે ટર્મિનલ વિન્ડોમાં તરીકે ઓળખાય નીચે. આ એક જૂની શાળા છે આદેશ વાક્ય ઈન્ટરફેસ, અથવા CLI, પરવાનગી આપે છે કે તમે આદેશો ચલાવવા માટે આ કિસ્સામાં કમ્પ્યુટર પર, cloud-- કમ્પ્યુટર તમારા કોડ કમ્પાઇલ જેવી વસ્તુઓ કરવા માટે સ્ત્રોત કોડ માંથી મશીન કોડ, તમારા કાર્યક્રમો ચલાવવા માટે, અથવા શરૂ કરવા માટે તમારા વેબ સર્વર, અથવા તમારા ડેટાબેઝ ઍક્સેસ કરવા માટે, અને અન્ય તકનીકો કોઈપણ નંબર કે અમે લાંબા પહેલાં વાપરવા માટે શરૂ કરી શકશો. પરંતુ ત્યાં વિચાર, અમે છો ખરેખર છે જવું ઓનલાઇન જાઓ અને રમવાનું શરૂ કરો. અને તે કરવા માટે, પ્રથમ દો મુખ્ય સાથે બેદરકારી શરૂ કરવા માટે, અને કાર્યક્રમની મુખ્ય ભાગ લખો. અને ચાલો તે કાર્ય ઉપયોગ કરવા દેવા printf, કે જે અમે અગાઉ ઉપયોગ થાય છે, ફક્ત કંઈક કહે છે. તેથી અહીં હું CS50 IDE ની અંદર પહેલેથી જ છું. હું અગાઉથી લૉગ ઇન કર્યું છે. અને હું સંપૂર્ણ વિન્ડો સ્ક્રીનીંગ. અને તેથી છેવટે, તમે બહુ સમસ્યાઓ સમાન પગલાંઓ અનુસરો કરશે કે ઓનલાઇન દસ્તાવેજીકરણ પૂરી પાડે છે. તેથી જો તમે તે વિશે ચિંતા કરવાની જરૂર નથી દરેક થોડું ટેકનિકલ પગલું શોષણ હું આજે અહીં શું છે. પરંતુ તમે આ જેવી સ્ક્રીન મળશે. હું રાત્રે મોડમાં થાય છે. અને તમે બધું હરખાવું કરી શકો છો નાઇટ સ્થિતિ નિષ્ક્રિય દ્વારા. અને અંતે દિવસ, તમે જોવા જઈ રહ્યાં છો ફાઇલ areas-- આ ત્રણ મુખ્ય ડાબી પર બ્રાઉઝર, ઉપર કોડ ટેબો, અને તળિયે ટર્મિનલ વિન્ડો. મને આગળ જવા દો અને મારી પ્રથમ પ્રોગ્રામ લખવા. હું preemptively ફાઇલ પર જવા માટે જઇ રહ્યો છું સાચવો, અને hello.c તરીકે મારા ફાઈલ સંગ્રહો. ખરેખર, પરંપરા દ્વારા, કોઈ પણ કાર્યક્રમ અમે લખે છે કે સી ભાષા માં લખાયેલ છે કંઈક નામ આપવામાં જોઈએ ડોટ સી, સંમેલન દ્વારા. તેથી હું તેને hello.c નામ જાઉં છું, કારણ કે હું માત્ર વિશ્વ માટે હેલો કહો કરવા માંગો છો. હવે હું ઝૂમ જાઉં છું બહાર અને સાચવો ક્લિક કરો. અને હું અહીં હવે એક ટેબ છે જેમાં હું કોડ લખવાનું શરૂ કરી શકો છો. આ કમ્પાઇલ નથી જઈ રહ્યા છે. આ કંઈ થાય છે. અને તેથી જો હું રૂપાંતરિત zeros અને રાશિઓ માટે આ સીપીયુ કોઈ હોય રહ્યું છે વિચાર આસપાસ શું થઈ રહ્યું છે. પરંતુ જો હું રેખાઓ લખે છે કે, મેળ ખાતા નથી સાથે સી conventions-- સે અપ, ફરીથી, આ વાક્યરચના સાથે language-- જેવા આ printf હેલો world-- અને હું કર્યું સાથે આરામદાયક મેળવેલ સમય જતાં આ કરી. તેથી હું કરવામાં લાગે છે નથી કોઈપણ લખાણ લગતી ભૂલો. પરંતુ, અચૂક ખૂબ જ પ્રથમ સમય તમે આ કરવા માટે, તમે કરશે. અને હું શું કરવા વિશે છું ખૂબ કદાચ સાથે સાથે તમે પ્રથમ વખત કામ નથી. અને તે સંપૂર્ણપણે ઠીક છે, કારણ કે હમણાં તમે માત્ર નવીનતા સંપૂર્ણ ઘણો જોઈ શકે પરંતુ સમય જતાં એકવાર તમે પરિચિત વિચાર આ વાતાવરણ સાથે, અને આ ભાષા, અને અન્ય તમે વસ્તુઓ જોવા માટે શરૂ કરી શકશો કે ક્યાં યોગ્ય અથવા અયોગ્ય છે. અને આ શું છે શિક્ષણ ફેલો અને કોર્સ મદદનીશો છે, સમય પર જ સારી વિચાર તમારો કોડ માં ભૂલો અથવા ભૂલો ઓળખી શકાય. પરંતુ મને લાગે છે કે દાવો ત્યાં આ કોડ માં કોઈ ભૂલો છે. તેથી હવે હું આ કાર્યક્રમ ચલાવવા માંગો છો. હવે મારા પોતાના મેક કે પીસી, હું છું ડબલ ક્લિક ચિહ્નો આદત જ્યારે હું કેટલાક કાર્યક્રમ ચલાવવા માંગો છો. પરંતુ તે મોડેલ અહીં નથી. આ પર્યાવરણ, જે CS50 IDE છે. અમે ઓપરેટિંગ ઉપયોગ કરી રહ્યા છો સિસ્ટમ એ Linux કહેવાય છે. Linux અન્ય યાદ અપાવે છે ઓપરેટિંગ સિસ્ટમ, સામાન્ય રીતે ઓળખાય યુનિક્સ તરીકે. અને Linux ખાસ કરીને માટે જાણીતા છે આદેશ વાક્ય પર્યાવરણ, CLI કર્યા. હવે, અમે ચોક્કસ ઉપયોગ કરી રહ્યાં છો Linux ના સ્વાદ ઉબુન્ટુ કહેવાય છે. અને ઉબુન્ટુ ખાલી છે અમુક Linux આવૃત્તિ. પરંતુ આ Linux ના આ દિવસોમાં ખરેખર ગ્રાફિકલ વપરાશકર્તા ઇન્ટરફેસો સાથે આવે છે. અને એક અમે થાય અહીં ઉપયોગ કરી વેબ આધારિત છે. તેથી આ પણ એક જોવા શકે છે કંઈક થોડી અલગ તમે તમારી જાતને હોય શકે છે જોઈ અથવા ભૂતકાળમાં ચલાવો. તેથી હું આગળ જાઓ જાઉં છું હવે નીચે પ્રમાણે કરો. હું આ ફાઇલ hello.c તરીકે સાચવી લીધો છે. હું આગળ જાઓ જાઉં છું અને પ્રકાર clanghello.c રણકાર તેથી સી ભાષા માટે એક કમ્પાઇલર છે. તે પૂર્વ-સ્થાપિત થયેલ છે CS50 IDE છે. અને તમે એકદમ ડાઉનલોડ કરી શકો છો અને તમારા પોતાના મેક કે પીસી પર આ સ્થાપિત કરો. પરંતુ, ફરી, તો તમે બધા ન હોત પૂર્વ રૂપરેખાંકન તમારા માટે થાય છે. તેથી હવે, હું માત્ર છું clanghello.c ચલાવવા માટે જઈ રહી છે. અને હવે આ વાક્યરચના નોટિસ અહીં છેવટે કરશે ખ્યાલ માત્ર અર્થ એ થાય કે હું એક છું ફોલ્ડર અથવા ડિરેક્ટરી વર્કસ્પેસ કહેવાય છે. આ ડોલર સાઇન માત્ર સંમેલન છે અર્થ, તમારા આદેશો અહીં લખો. તે શું પ્રોમ્પ્ટ કહેવાય છે, માત્ર સંમેલન દ્વારા ડોલર નિશાની છે. અને જો હવે હું આગળ જાઓ અને ક્લિક કરો દાખલ કરો, કંઇ થયું હોય તેમ લાગે છે. પરંતુ તે ખરેખર એક સારી બાબત છે. ઓછી થાય છે તમારી સ્ક્રીન, વધુ શક્યતા તમારો કોડ યોગ્ય હોઈ શકે છે, ઓછામાં ઓછા વાક્યરચના અનુસાર. તેથી જો હું આ ચલાવવા માંગો છો કાર્યક્રમ, હું શું કરી શકું? વેલ, તે તારણ છે કે સંમેલન દ્વારા મૂળભૂત નામ કાર્યક્રમો માટે જ્યારે તમે સ્પષ્ટ કરો નહિં નામ તમારા કાર્યક્રમ માત્ર a.out છે. અને આ વાક્યરચના પણ, તમે પડશે પહેલાં લાંબા સાથે પરિચિત મેળવો. કોઈ સ્લેશ માત્ર અર્થ એ થાય, અરે, આ CS50 IDE, a.out કહેવાય કાર્યક્રમ ચલાવવા કે મારા વર્તમાન ડિરેક્ટરી અંદર છે. તે કોઈ વર્તમાન ડિરેક્ટરી થાય છે. અને અમે શું આવા બીજા સિક્વન્સ જોવા મળશે અક્ષરો લાંબા પહેલાં થાય છે. તેથી અહીં અમે જાઓ, દાખલ કરો, હેલો વર્લ્ડ. અને તમે નોટિસ પડશે કે, શું થયું? માત્ર તે હેલો વર્લ્ડ છાપો હતી. તે પણ ખસેડવામાં આગળની લીટી પર કર્સર. અને શા હતી? કોડ કે અમે પહેલાં લખ્યું હતું કે શું હતું કે જે ખાતરી કર્સર કરશે આગળના વાક્ય પર જાઓ? એક વિશે રમૂજી વસ્તુ કમ્પ્યુટર તે માત્ર ચાલી રહ્યું છે શાબ્દિક કરવા માટે તમે શું કરવા તે જણાવો. તેથી જો તમે હેલો printf માટે તે કહેવું હોય તો, અલ્પવિરામ, જગ્યા, વિશ્વ, બંધ ભાવ, તે શાબ્દિક માત્ર રહ્યું છે તે અક્ષરો છાપો. પરંતુ હું આ ખાસ પાત્ર હતી અંત, સ્મૃતિ, બેકસ્લેશ n છે. અને તે શું ખાતરી છે કે જે અક્ષર ગયા સ્ક્રીન આગળના વાક્ય પર. હકીકતમાં, મને જવા દે અને આ કરવા દો. મને આગળ વધો અને આ કાઢી દો. હવે, કે નોટિસ મારા સ્ક્રીન ટોચ છે એક લિટલ રેડ પ્રકાશ ટેબ સૂચવે છે, અરે, તમે તમારી ફાઈલ સેવ નથી કર્યું. તેથી હું નિયંત્રણ સાથે આગળ જવા માટે જઇ રહ્યો છું એસ અથવા આદેશ એસ, ફાઈલ સંગ્રહો. હવે તે એક ક્ષણ લીલા માટે ગયા goes--. અને હવે તે પાછા છે માત્ર એક બંધ ચિહ્ન છે. હવે હું ફરીથી clanghello.c ચલાવવા માટે, દાખલ કરો, કોઈ સ્લેશ, a.out, દાખલ કરો, તમે જોશો કે તે હજુ પણ કામ કર્યું હતું. પરંતુ તે દલીલમાં થોડી બગડેલ છે. હમણાં, મારા પ્રોમ્પ્ટ કામ કરવાની જગ્યા, અને પછી તે ડોલર સાઇન, અને પછી મારા વાસ્તવિક પ્રોમ્પ્ટ બધા જ લાઇન પર છે. તેથી આ ચોક્કસપણે એક કલાત્મક ભૂલ, પણ જો તે ખરેખર લોજિકલ ભૂલ નથી. તેથી હું માત્ર શું કર્યું પૂર્વવત્ જાઉં છું. હું a.out પુનઃ ચલાવો જાઉં છું. નોંધ હું ઉમેર્યા છે NEWLINE પાત્ર પાછા. હું ફાઈલ સાચવી લીધો છે. તેથી હું a.out પુનઃ ચલાવો જાઉં છું and-- ડેમિટ, ભૂલ, ભૂલ, જેનો અર્થ ભૂલ. તેથી ભૂલ છે કે ભલે છે હું એ ત્યાં બેકસ્લેશ ઉમેર્યું હતું કે, ફરીથી સેવ, કાર્યક્રમ ફરીથી ચાલી હતી, વર્તન જ હતી. શા માટે હશે? હું એક પગલું, અધિકાર ગુમ છું? તે કી પગલું અગાઉ છે કે તમે હતી જ્યારે તમે તમારા સ્રોત કોડ બદલવા એક--, તે બહાર વળે પણ ચલાવવા તે કમ્પાઇલર દ્વારા ફરીથી, જેથી તમે નવું મશીન કોડ મેળવો. અને મશીન કોડ છે, zeros અને મુદ્દાઓ, લગભગ સમાન હોવું રહ્યું છે, પરંતુ સંપૂર્ણપણે જેથી નથી, કારણ કે અમે જરૂર છે, અલબત્ત, તે નવી લીટી. તેથી આ ઠીક, હું જરૂર જાઉં છું clanghello.c પુનઃ ચલાવો કરવા માટે, દાખલ, કોઈ સ્લેશ, a.out. અને હવે, હેલો વર્લ્ડ પાછા છે જ્યાં હું તે અપેક્ષા હોય છે. તેથી આ બધા દંડ અને સારી છે. પરંતુ a.out માટે એક ખૂબ મૂર્ખ નામ છે કાર્યક્રમ, તેમ છતાં તે બને છે, ઐતિહાસિક કારણોસર, વિધાનસભા આઉટપુટ જેનો અર્થ થાય છે મૂળભૂત. પરંતુ મને આગળ અહીં જવા દો અને આ અલગ કરવું. હું મારા હેલ્લો વિશ્વ કાર્યક્રમ માંગો છો ખરેખર હેલો કહી શકાય. તેથી જો તે પર ચિહ્ન હતા મારા ડેસ્કટોપ, તે a.out ન હોત. તે હેલો કહેવામાં આવશે. તેથી આ કરવા માટે, તે બહાર વળે કે રણકાર, ઘણા કાર્યક્રમો જેમ, આદેશ વાક્ય દલીલો આધાર આપે છે, અથવા ફ્લેગ, અથવા સ્વીચો, ફક્ત તેના વર્તન અસર છે. ખાસ કરીને, રણકાર એક આડંબર ઓ આધાર આપે છે ધ્વજ, કે જે પછી બીજા શબ્દ લે છે. આ કિસ્સામાં, હું આપખુદ પડશે, પરંતુ વ્યાજબી, તેને હેલો કહી. પરંતુ હું તે કંઇ કહી શકે છે હું માંગો છો, a.out, સિવાય કે જે તેના બદલે બિંદુ ઉપરાંત હશે. અને પછી માત્ર નામ સ્પષ્ટ ફાઈલની હું કમ્પાઇલ કરવા માંગો છો નથી. તેથી હવે પણ શરૂઆતમાં છતાં આદેશ હું હજુ પણ રણકાર હોય, આદેશ ઓવરને અંતે હું હજુ પણ ફાઇલનામ હોય છે, હવે હું આ આદેશ વાક્ય છે દલીલો, આ ફ્લેગ કે જે કહે છે, ઓહ, જે રીતે દ્વારા, આઉટપુટ-O, ફાઇલ હેલ્લો કહે છે, નથી મૂળભૂત a.out. તેથી હવે, કંઇ દાખલ કરો, જો હું હિટ થયું હોય તેમ લાગે છે. અને, છતાં, હવે હું કોઈ સ્લેશ હેલો કરી શકો છો. તેથી તે જ કાર્યક્રમ છે. zeros અને મુદ્દાઓ છે દિવસ ઓવરને અંતે સમાન. પરંતુ તેઓ બે છો વિવિધ ફાઈલો છે a.out, જે પ્રથમ આવૃત્તિ છે અને માત્ર foolishly નામ આપવામાં આવ્યું, અને હવે હેલો, જે ખૂબ છે એક કાર્યક્રમ માટે વધુ આકર્ષક નામ. પરંતુ, પ્રમાણિકતા, હું ક્યારેય છું આ ફરી યાદ રહ્યું છે, અને ફરી, અને ફરીથી. અને, ખરેખર, કારણ કે અમે લખી વધુ જટિલ કાર્યક્રમો, આદેશો તમે છો લખવા માટે છે જવું પણ વિચાર જતા હોય છે વધુ હજુ પણ જટીલ. અને તેથી ચિંતા ન કરો. તે તારણ છે કે મનુષ્યો પહેલાં અમને તેઓ પણ સમજાયું છે આ ચોક્કસ જ સમસ્યા હતી. તેઓ ખૂબ કર્યા આનંદ ન હતી એકદમ લાંબા, Arcane આદેશો લખો એકલા દો તેમને યાદ કરે છે. અને તેથી અમને પહેલાં મનુષ્યો કર્યા છે અન્ય કાર્યક્રમો કે જે તેને સરળ બનાવવા તમારા સોફ્ટવેરને કમ્પાઇલ કરવા માટે. અને, ખરેખર, આવા એક કાર્યક્રમ મેક કહેવામાં આવે છે. તેથી હું આગળ વધો અને આ કરવા માટે જઇ રહ્યો છું. હું બધું પૂર્વવત્ કરવા જઇ રહ્યો છું હું માત્ર નીચેના રીતે કર્યું હતું. મને ls લખો દો. અને તમે ત્રણ નોટિસ પડશે વસ્તુઓ a.out, અને એક તારો, હેલો અને એક તારો, અને hello.c. આસ્થાપૂર્વક, આ જોઇએ થોડી સાહજિક હોય છે, ત્યાં સુધી કે અગાઉ હતી આ કામ કરવાની જગ્યા માં કંઈ નથી. કંઈ છે કે હું પડી હતી બનાવવામાં ત્યાં સુધી અમે વર્ગ શરૂ કર્યું. અને હું hello.c બનાવવામાં. હું પછી તે સંકલિત છે, અને તે a.out કહેવાય છે. અને પછી હું તેને ફરીથી સહેજ સંકલિત અલગ અને તે હેલ્લો કહે છે. તેથી હું આ ડિરેક્ટરીમાં ત્રણ ફાઈલો હોય, આ ફોલ્ડર વર્કસ્પેસ કહેવાય. હવે, હું જોઈ તેમજ કરી શકો છો જો હું ખરેખર બહાર ઝૂમ. જો હું અહીં બહાર ઝૂમ અને કે ટોચ જમણી બાજુ જોવા ખૂણામાં, ડાબી વચન તમારી સ્ક્રીન બાજુ હંમેશા તમને બતાવવા જઈ રહ્યું છે શું તમારા એકાઉન્ટમાં છે, શું છે CS50 IDE ની અંદર. અને ત્યાં ત્રણ ફાઈલો છે. તેથી હું a.out છુટકારો મેળવવા માટે અને હેલો માંગો છો. અને તમે કદાચ તર્ક કલ્પના, તમે નિયંત્રણ ક્લિક સૉર્ટ શકે અથવા જમણે આ પર ક્લિક કરો. અને આ થોડો મેનુ પૉપ અપ. તમે ફાઈલ ડાઉનલોડ કરી શકો છો, ચલાવો તે તે પૂર્વાવલોકન, તાજું, નામ બદલો, અથવા શું નથી. અને હું માત્ર કાઢી શકે છે, અને તે દૂર જતા રહેશે. પરંતુ એક આદેશ સાથે વસ્તુઓ કરવા દો હવે લાઇન, જેથી આરામદાયક વિચાર આ સાથે, અને નીચે પ્રમાણે કરો. હું આગળ જાઓ અને દૂર કરવા જાઉં છું શાબ્દિક rma.out લખીને a.out. તે બહાર વળે છે, માટે આદેશ દૂર અથવા કંઈક કાઢવા માટે, દૂર કરવા અથવા કાઢી નથી. તે વધુ સંક્ષિપ્તમાં આરએમ માત્ર સેવ છે, તમે કેટલાક કીસ્ટ્રોક, અને Enter દબાવો. હવે અમે કંઈક હોઈ જઈ રહ્યાં છો રહસ્યમય નિયમિત ફાઈલ a.out દૂર કરો. હું ખરેખર શું ખબર નથી અનિયમિત ફાઇલ હજુ સુધી રહેશે. પરંતુ હું તેને દૂર કરવા માંગો છો. તેથી હું હા માટે વાય ટાઇપ કરવા માટે જઇ રહ્યો છું. અથવા હું તેને બહાર લખો અને Enter દબાવો શકે છે. અને, ફરી, કંઇ થાય તેમ લાગે છે. પરંતુ તે, એક સારી બાબત છે સામાન્ય રીતે. જો હું આ સમય માટે ls લખો, હું શું જોવું જોઈએ? આસ્થાપૂર્વક, માત્ર હેલો અને hello.c. હવે, એક અલગ તરીકે, તમે પડશે આ તારો તારો નોટિસ, કે મારા કાર્યક્રમો ઓવરને અંતે છે. અને તેઓ પણ લીલા દેખાઈ રહ્યા છે. કે જે હમણાં જ CS50 IDE માર્ગ છે હકીકત એ છે કે તમે cluing ઓફ કે સ્રોત કોડ નથી. તે એક એક્ઝેક્યુટેબલ, એક runnable છે કાર્યક્રમ છે કે જે તમે ખરેખર ચલાવી શકો છો કોઈ સ્લેશ કરી, અને પછી દ્વારા તે નામ છે. હવે, મને આગળ વધો અને દૂર કરવા દો આ, આરએમ હેલો, દાખલ કરો, નિયમિત દૂર હેલો ફાઇલ, હા. અને હવે જો હું ls લખો, અમે પાછા hello.c છો. કાઢી નાખવા પ્રયાસ કરો તમારા વાસ્તવિક સ્ત્રોત કોડ. તેમ છતાં ત્યાં લક્ષણો છે CS50 IDE જ્યાં માં સમાયેલ તમે તમારા પુનરાવર્તન ઇતિહાસ દ્વારા જઈ શકે છે અને સમય રીવાઇન્ડ જો તમે આકસ્મિક કંઈક કાઢી નાખો, માઇન્ડફુલ પ્રયત્ન કરવા આ પૂછે હા અથવા ના હોય મુજબ, તમે ખરેખર કરવા માંગો છો શું છે. અને જો હું ટોચ સુધી જવા ખૂણે બાકી અહીં, જે બધું રહે છે hello.c છે. તેથી ત્યાં જુમખું છે અન્ય આદેશો કે જે તમે Linux વિશ્વમાં ચલાવી શકો છો, એક જે, ફરી કરો, છે. અને અમે કરી રહ્યા છીએ મારા કાર્યક્રમ હવે નીચે મુજબ છે. તેના બદલે રણકાર કરી, તેના બદલે રણકાર-O કરવાની, હું ફક્ત જાઉં છું શાબ્દિક લખો હેલો બનાવે છે. અને હવે નોટિસ, હું છું hello.c બનાવવા લખીને. હું હેલ્લો બનાવવા લખીને છું. અને આ કાર્યક્રમ બનાવો કે CS50 IDE, અને વધુ સાથે આવે છે સામાન્ય રીતે Linux સાથે, એક કાર્યક્રમ છે કે જે હેલો કહેવાય કાર્યક્રમ બનાવવા જઈ રહી છે. અને તે ધારે, સંમેલન દ્વારા ચાલી રહ્યું છે કે જો આ કાર્યક્રમ કરી શકાય છે, તે સ્ત્રોત માંથી બનાવેલ કરી રહ્યું છે કોડ ફાઇલ ડોટ સી અંત, hello.c. તેથી હવે, નોટિસ દાખલ કરો, જો હું હિટ કે આદેશ ચલાવવામાં નહીં કે ખરેખર પણ લાંબા સમય સુધી છે પહેલાં કરતાં પહેલાં. અને કારણ કે અમે કર્યું છે પૂર્વરૂપરેખાંકિત CS50 IDE હોય કેટલીક વધારાની છે કે આંતરિક લક્ષણો અમે હજી સુધી જરૂર નથી, પરંતુ ટૂંક સમયમાં કરશે. પરંતુ કી વસ્તુ ખ્યાલ હવે હું એક હેલો કાર્યક્રમ હોય છે. જો હું ls ફરીથી લખો, હું હેલ્લો કાર્યક્રમ છે. અને હું તેની સાથે ચલાવી શકો છો ડોટ a.out સ્લેશ, કોઈ, કારણ કે આ સમગ્ર બિંદુ કસરત કોઈ સ્લેશ હેલો હતી. અને હવે હું મારા હેલ્લો વિશ્વ કાર્યક્રમ છે. તેથી, આગળ વધવા અમે લગભગ હંમેશા માત્ર છો અમારા કાર્યક્રમો કમ્પાઇલ જાઉં આદેશ મેક મદદથી. અને પછી અમે દ્વારા તેમને ચલાવવા માટે જઈ રહ્યાં છો કોઈ સ્લેશ, અને કાર્યક્રમ નામ. પરંતુ શું ખ્યાલ બનાવવા માટે કરી છે તમે, તે પોતે એક કમ્પાઇલર નથી. તે માત્ર એક સગવડ કાર્યક્રમ છે કે કેવી રીતે જાણે છે કમ્પાઇલર ટ્રીગર કરવા માટે જેથી ચલાવવા માટે કે તમે તેને જાતે ઉપયોગ કરી શકો છો. શું અન્ય આદેશો અસ્તિત્વમાં Linux, અને વળાંક CS50 IDE માં? અમે ટૂંક સમયમાં જોવા મળશે કે ત્યાં એક સીડી આદેશ, ડિરેક્ટરીને બદલો. આ તમને અંદર પરવાનગી આપે છે તમારો આદેશ વાક્ય ઈન્ટરફેસ આગળ વધો, અને પાછળ, અને વિવિધ ફોલ્ડર્સ ખોલો તમારા માઉસની મદદથી વગર. LS અમે જોયું છે, કે જે યાદી માટે વપરાય છે વર્તમાન ડિરેક્ટરીમાં ફાઈલો. નિયામકશ્રી કરો, તમે કરી શકો છો કદાચ અટકળ બાંધવી શરૂ આ શું now-- ડિરેક્ટરી બનાવવા તેનો અર્થ, તમે એક ફોલ્ડર બનાવવા માંગો છો તો. દૂર કરો માટે આરએમ, આરએમ માટે dir ડિરેક્ટરી અને આ દૂર કરવા માટે, ફરીથી, આ આદેશ વાક્ય છે તમે શું સમાનતા તમારા માઉસની સાથે CS50 IDE માં કરી શકે છે. પરંતુ તમે તરત મળશે ક્યારેક તે માત્ર છે ઘણો ઝડપી કરવા માટે કીબોર્ડ સાથે વસ્તુઓ, અને આખરે ઘણો વધુ શક્તિશાળી. પરંતુ તે એવી દલીલ કરે છે કે મુશ્કેલ છે કંઈપણ અમે અત્યાર સુધી કરી દેવામાં આવી છે બધા શક્તિશાળી, જ્યારે બધા છે આપણે કહેતા થઈ, હેલો વર્લ્ડ. અને, હકીકતમાં, હું નિશ્ચિત શબ્દો મારા કાર્યક્રમ માં હેલો વર્લ્ડ. કોઈ dynamism હજુ સુધી છે. સ્ક્રેચ તીવ્રતા ઓર્ડર હતો વધુ રસપ્રદ છેલ્લા અઠવાડિયે. અને તેથી ત્યાં વિચાર કરીએ. દ્વારા કે તરફ એક પગલું લેવા દો આ કેટલાક કાર્યોને રીતે. તેથી માત્ર સી printf સાથે આવે છે, અને અન્ય કાર્યો જુમખું કેટલાક જે અમે જોશો સમય જતાં, તે નથી અધિકાર બહાર તે બધા સરળ બનાવવા વપરાશકર્તા ઈનપુટ મેળવવામાં દરવાજો. હકીકતમાં, નબળાઈઓ એક જેમ કે C ભાષાઓ, અને તે પણ જાવા અને હજુ સુધી અન્ય, તે નથી છે તે સરળ ફક્ત જેવી વસ્તુઓ મેળવવા માટે બનાવવા વપરાશકર્તાઓ, અથવા શબ્દમાળાઓ, શબ્દો પૂર્ણાંકો, અને શબ્દસમૂહો છે, જેમ કે વસ્તુઓ એકલા દો અપૂર્ણાંક બિંદુ કિંમતો, અથવા વાસ્તવિક સંખ્યાઓ એ પોઇન્ટ છે, અને ખરેખર સાથે લાંબા આંકડાઓ, કારણ કે અમે ટૂંક સમયમાં જોવા મળશે. તેથી અહીં કાર્યો આ યાદી, આ અન્ય શરૂઆતથી પઝલ ટુકડાઓ જેવા છે અમે CS50 માં પૂર્વ સ્થાપિત થયેલ છે IDE કે અમે થોડા અઠવાડિયા માટે ઉપયોગ કરશો પ્રકારની તાલીમ વ્હીલ્સ, અને છેવટે તેમને બંધ લે છે, અને જુઓ હૂડ, કદાચ, અંતે નીચે આ બધું કેવી રીતે અમલ કરવામાં આવે છે. પરંતુ આ કરવા માટે, ચાલો ખરેખર એક કાર્યક્રમ લખવા. મને આગળ હવે જાઓ. પછી મેં એક નવું બનાવવા માટે જઇ રહ્યો છું આ થોડું વત્તા ક્લિક કરીને ફાઇલ, અને નવી ફાઇલ ક્લિક કરીને. હું આ આગામી સેવ કરવા જઇ રહ્યો છું કારણ કે, ચાલો કહે છે, string.c, કારણ કે હું શબ્દમાળાઓ સાથે રમવા માંગે છે. અને સી શબ્દમાળા માત્ર છે અક્ષરો ક્રમ. તેથી હવે આપણે આગળ જવા દો અને નીચે પ્રમાણે કરો. સમાવેશ થાય છે ધોરણ IO.h-- અને તે બહાર વળે પ્રમાણભૂત IO IO માત્ર ઇનપુટ અને આઉટપુટ થાય છે. તેથી તે તારણ આપે છે કે અહીં આ વાક્ય શું છે printf ઉપયોગ કરવા માટે અમને પડોશી છે. Printf, અલબત્ત, આઉટપુટ પેદા કરે છે. તેથી ક્રમમાં printf ઉપયોગ કરવા માટે, તે કરે છે બહાર તમે કોડ આ વાક્ય હોય છે તમારી ફાઈલ ટોચ પર. અને અમે પાછા આવો પડશે શું કે ખરેખર લાંબા પહેલાં થાય છે. તે તારણ આપે છે કે કોઈપણ સી કાર્યક્રમ હું લખવા, હું સાથે શરૂ કરવા માટે મળી છે કોડ કે આ જેવી લાગે છે. અને તમે CS50 IDE નોટિસ, અને પડશે અન્ય સંકલિત વિકાસ તે જેમ પર્યાવરણોમાં, શ્રેષ્ઠ પ્રયાસ કરવા માટે જતા હોય છે તેઓ તમારા વિચાર સમાપ્ત કરવા માટે કરી શકો છો. હકીકતમાં, એક ક્ષણ પહેલા તો હું પૂર્વવત્ હું માત્ર શું કર્યું, હું Enter દબાવો. હું પછી ઓપન સર્પાકાર ફટકો તાણવું, ફરી Enter દબાવો. અને તે મારા વિચાર સમાપ્ત થાય. તે મને એક નવી લાઇન આપી, કોઈ ઓછી ઇન્ડેન્ટેડ સરસ શૈલીયુક્ત કારણોસર અમે જોશો. અને પછી તે આપમેળે મને આપ્યો કે સર્પાકાર તાણવું મારા વિચાર સમાપ્ત કરવા માટે. હવે, તે હંમેશા નથી ધારી તમે શું કરવા માંગો છો. પરંતુ મોટાભાગે, તે કરે છે તમે કેટલાક કીસ્ટ્રોક સાચવો. તેથી એક ક્ષણ પહેલા, અમે આ પ્રોગ્રામ ચાલી હેલો, વિશ્વ, અને પછી તે સંકલિત, અને પછી તે ચાલી હતી. પરંતુ ત્યાં કોઈ dynamism અહીં છે. તો શું અમે ઇચ્છતા કંઈક અલગ કરે છે? વેલ, તો શું હું ખરેખર ઇચ્છતા વપરાશકર્તા માંથી શબ્દમાળા મેળવવા? હું એક પઝલ ભાગ નો ઉપયોગ કરવા જઇ રહ્યો છું બરાબર કહેવાય કરતી શબ્દમાળા મળે છે. સી શકે બહાર વળે છે કે જ્યારે તમે નહિં માંગો એક પઝલ ભાગ ઇનપુટ પૂરું પાડવા, અથવા વધુ એક કાર્ય કરવા માટે યોગ્ય રીતે, તમે શાબ્દિક માત્ર ઓપન કૌંસ કરવા માટે, બંધ કૌંસ. તેથી તે તરીકે છતાં ત્યાં છે કોઈ સફેદ બોક્સમાં લખી શકે છે. કહે બ્લોક પહેલાં થોડી સફેદ બોક્સ હતી. હવે અમે તે સફેદ બોક્સ નથી. પરંતુ જ્યારે હું શબ્દમાળા વિચાર કરો, હું પરિણામ ક્યાંક મૂકવા માંગો છો. તેથી સી એક ખૂબ જ સામાન્ય ફેરફાર છે એક કાર્ય છે, ગેટ શબ્દમાળા અહીં કહી, અને પછી તેના વળતર કિંમત સ્ટોર કરે છે. તે પરિણામ છે તેના કંઈક પ્રયાસ. અને શું છે પ્રોગ્રામિંગ રચવું, સી સ્ક્રેચ માં અથવા હવે શું, કે અમે ખરેખર કંઈક કરવા માટે સંગ્રહવા માટે ઉપયોગ કરી શકો છો? તે યોગ્ય કહેવાય ચલ? અને શરૂઆતથી, અમે ખરેખર નથી શું કાળજી ચલો માં ચાલુ કરવામાં આવી હતી. પરંતુ આ કિસ્સામાં, અમે ખરેખર નથી. હું શબ્દમાળા કહેવા જાઉં છું. અને પછી હું કહી શકે છે આ કંઇ હું માંગો છો. હું તેને કૉલ કરવા જઇ રહ્યો છું નામ, શબ્દમાળા વિચાર નહીં. અને હવે તમે કરી રહ્યાં છો આ માટે થોડી નવી, નોંધ કરો કે હું અમુક વિગતવાર અભાવ રહ્યો છું. હું અર્ધવિરામ ભૂલી છું. હું આ વિચાર સમાપ્ત કરવા માટે જરૂર છે. તેથી હું મારા કર્સરને ખસેડવા માટે જઇ રહ્યો છું, અને ત્યાં અર્ધવિરામ હિટ. અને માત્ર હું શું કર્યું છે? કોડ આ વાક્ય માં, આ ક્ષણે નંબર 5, હું કોઈ ઇનપુટ્સ સાથે સ્ટ્રિંગ વિચાર ફોન કરું છું. તેથી ત્યાં કોઈ ઓછી સફેદ બોક્સ જેમ સાચવો બ્લોક છે. હું માત્ર કહી રહ્યો છું, અરે, કોમ્પ્યુટર, મને એક શબ્દમાળા મળે છે. સમાન સાઇન ખરેખર નથી એક સમાન સાઇન, સે દીઠ. તે સોંપણી છે ઓપરેટર, જેનો અર્થ થાય છે, અરે, કમ્પ્યુટર, કિંમત ખસેડવા ડાબી પર અધિકાર છે. અને ડાબી, હું નીચેના હોય છે. અરે, કોમ્પ્યુટર, મને શબ્દમાળા આપે અક્ષરો ક્રમ. અને કોલ છે કે જેઓ શબ્દમાળા નામ. અને હું પણ તે નામ કૉલ કરવાની જરૂર નથી. હું તેને કહી શકે છે, પરંપરાગત, ઓ કંઈક, ખૂબ જેમ અમે હું ઉપયોગ ચલ હું કૉલ કરો. પરંતુ હવે હું તેની સાથે કંઈક કરવાની જરૂર છે. તે ખૂબ મૂર્ખ હશે આ કોડ કમ્પાઇલ પ્રયત્ન કરો, ચાલી આ કાર્યક્રમ, તેમ છતાં હું એક શબ્દમાળા મેળવવામાં છું, કારણ કે તે હજુ પણ માત્ર છે હેલો કહો વિશ્વ જઈ રહી છે. પરંતુ શું હું આ બદલવા માંગો છો તો. હું આ કેમ ન કરી શકું? ટકા ઓ, અલ્પવિરામ ઓ. અને આ હજુ પણ થોડી વિસ્મૃત છે. તેથી મને મારા ચલો વધુ સ્પષ્ટ બનાવવા દો. મને આ ચલ નામ નામ દો. અને ચાલો આપણે પીંજવું કરી શકો છો દો સિવાય અહીં શું થઈ રહ્યું છે. તેથી પાંચ લાઇન પર, હું એક શબ્દમાળા મેળવવામાં છું. અને હું કે જે શબ્દમાળા સ્ટોર છું, વપરાશકર્તા ટાઇપ ગમે છે તેના અથવા તેણીના કીબોર્ડ પર, એક ચલ નામ કહેવાય છે. અને તે તારણ છે કે printf નથી માત્ર કરે છે ડબલ એક દલીલ લે છે અવતરણ, અવતરણ એક ઇનપુટ. તે બે અથવા ત્રણ, અથવા વધુ, જેમ લાગી શકે છે કે બીજા, અથવા ત્રીજા કે ચોથા, બધા ચલો નામો છે, અથવા ખાસ કિંમતો છે, કે જે તમે પ્લગ કરવા માંગો છો, ગતિશીલ, અવતરણ છે કે જેઓ શબ્દમાળા. બીજા શબ્દોમાં કહીએ તો, શું આ સાથે ખોટું હશે? જો હું માત્ર જણાવ્યું હતું કે હેલો નામ, બેકસ્લેશ એન, મારા ફાઈલ સાચવવામાં, મારા કોડ સંકલિત, અને આ ચાલી હતી, તો શું થશે? તે માત્ર કહી રહ્યું છે, હેલો નામ, શાબ્દિક એન-એ-એમ-ઇ, જે પ્રકારની મૂર્ખ છે, કારણ કે તે વિશ્વના કોઈ અલગ છે. તેથી અવતરણ કંઈપણ છે શું શાબ્દિક મુદ્રિત નહીં. તેથી જો હું હોય માંગો છો એક પ્લેસહોલ્ડર ત્યાં, હું ખરેખર ઉપયોગ કરવાની જરૂર અમુક ખાસ વાક્યરચના. અને તે તારણ છે જો તમે વાંચી printf કાર્ય માટે દસ્તાવેજીકરણ, તે તમને કહેશે કે તમે ટકા ઓ વાપરો તો, તમે નીચેની નીચે પ્રમાણે અલગ કરી શકે છે. કે પછી અલ્પવિરામ પછી ડબલ ભાવ, તમે ખાલી નામ લખો ચલ છે કે જે તમે કરવા માંગો છો કે બંધારણમાં માં પ્લગ કોડ છે, અથવા ફોર્મેટ specifier, શબ્દમાળાઓ માટે ટકા ઓ. અને હવે હું મારા ફાઈલ સાચવી લીધો છે, તો હું મારા ટર્મિનલ પર નીચે જાઓ. અને હું શબ્દમાળા બનાવે લખો, કારણ કે, ફરી, આ નામ ફાઇલ કે હું પહેલાં પસંદ string.c છે. તેથી હું શબ્દમાળા બનાવો, દાખલ કહેવા જાઉં છું. ઓહ મારા દેવતા, તમામ જોવા ભૂલો અમે પહેલાથી જ કર્યા છે. અને આ-- શું આ ખરેખર એક છ, સાત વાક્ય કાર્યક્રમ જેવું? તેથી આ છે જ્યાં તે ખૂબ જ કરી શકો છો ઝડપથી જબરજસ્ત મળે છે. આ ટર્મિનલ વિન્ડો છે હવે માત્ર regurgitated ભૂલ સંદેશાઓ એક વિશાળ સંખ્યા. ચોક્કસ, હું વધુ ભૂલ નથી હું કરતાં સંદેશા કોડ રેખાઓ હોય છે. તેથી શું થઈ રહ્યું છે? વેલ, શ્રેષ્ઠ વ્યૂહરચના તમે ગમે ત્યારે શું કરવું જબરજસ્ત અનુભવી કરો કે જેમ ભૂલો યાદી, પાછા સ્ક્રોલ છે, આદેશ માટે જુઓ તમે માત્ર ચાલી હતી, જે મારા કિસ્સામાં શબ્દમાળા બનાવે છે. શું કર્યું હતું જુઓ, અને તે કે લાંબા રણકાર આદેશ, ત્યાં કોઈ મોટો સોદો. પરંતુ લાલ ખરાબ છે. લીલા હોઈ પ્રયાસ કરી રહી છે સૌમ્ય અને ઉપયોગી. પરંતુ તે હજુ પણ ખરાબ છે, આ કિસ્સામાં. પરંતુ જ્યાં તે ખરાબ છે? String.c, રેખા પાંચ અક્ષર પાંચ. તેથી આ માત્ર સામાન્ય સંમેલન છે. કંઈક કોલોન કંઈક અર્થ એ થાય લાઇન નંબર અને અક્ષર સંખ્યા. ભૂલ, બિનજાહેર ઉપયોગ ઓળખકર્તા શબ્દમાળા. તમે પ્રમાણભૂત જવાની હતી? તેથી, કમનસીબે, રણકાર મદદરૂપ થઈ કરવાનો પ્રયાસ કરવામાં આવે છે. પરંતુ તે ખોટું છે, આ કિસ્સામાં. કોઈ, રણકાર, હું પ્રમાણભૂત IO માગતી ન હતી. હું એક લીટી પર અર્થ થાય છે કે, હા. પરંતુ વાક્ય પાંચ અહીં આ એક છે. અને રણકાર નથી સમજી એસ ટી આર આઇ એન જી. તે બિનજાહેર ઓળખકર્તા, એક છે શબ્દ તે માત્ર પહેલાં ક્યારેય ન જોઈ છે. અને કારણ કે સી, ભાષા છે અમે કોડ લખી રહ્યાં હમણાં, ચલો શબ્દમાળાઓ કહેવાય નથી. તે નથી મૂળભૂત, આધાર દ્વારા કંઈક શબ્દમાળા કહેવાય છે. કે CS50 ભાગ છે કલકલ, પરંતુ ખૂબ જ પરંપરાગત. નીચે પ્રમાણે પરંતુ હું આ ઠીક કરી શકે છે. હું કોડ એક વાક્ય ઉમેરો આ કાર્યક્રમ ટોચ પર, Cs50.h, જે બીજી ફાઇલ સમાવેશ થાય છે ક્યાંક CS50 IDE ની અંદર, ક્યાંક હાર્ડ ડ્રાઈવ પર છે, તેથી વાત કરવા માટે, ઉબુન્ટુ ઓપરેટિંગ સિસ્ટમ કે હું ચાલી રહ્યો છું, કે ફાઈલ છે કે જે ઓપરેટિંગ શીખવવા માટે ચાલે સિસ્ટમ શું એક સ્ટ્રિંગ છે, માત્ર ધોરણ io.h ફાઈલને છે ઓપરેટિંગ સિસ્ટમ છે કે જે શું printf છે તે શીખવવા માટે જઈ રહી છે. ખરેખર, આપણે મેળવેલ હશે ખૂબ જ સમાન સંદેશ જો IO પ્રમાણભૂત સ્વીકાર્યું હતું Io.h અને printf ઉપયોગ કરવા પ્રયાસ કર્યો હતો. તેથી હું આગળ અને માત્ર જાઓ જાઉં છું નિયંત્રણ એલ લેવા મારા સ્ક્રીન સાફ કરવા માટે. અથવા તમે સ્પષ્ટ ટાઈપ કરી શકો છો અને તે માત્ર ટર્મિનલ વિન્ડો સાફ કરો. પરંતુ તમે હજુ પણ સમય પાછા સ્ક્રોલ કરી શકો છો. અને હું શબ્દમાળા બનાવવા પુનઃ ચલાવો જાઉં છું. મારી આંગળીઓ આ સમય ક્રોસ, દાખલ કરો. મારા ઓહ ગોડ, તે કામ કર્યું. તે મને લાંબા વિસ્મૃત આદેશ બતાવે કે શું રણકાર મારફતે પેદા કરી છે, પરંતુ કોઈ ભૂલ સંદેશાઓ. તેથી ખ્યાલ છે, તેમ છતાં તમે સંપૂર્ણપણે મળી શકે સાથે ભરાઈ ગયાં ભૂલ સંદેશાઓ સંખ્યા, તે માત્ર આ નકામી કેસ્કેડીંગ હોઈ શકે છે અસર છે, જ્યાં રણકાર સમજી શકતો નથી એક વસ્તુ છે, કે જે પછી તે અર્થ એ થાય આગામી શબ્દ સમજી શકતો નથી, અથવા આગામી રેખા. અને તેથી તે માત્ર તમારો કોડ પર શ્વાસ બંધ કરવાની ટેકનિક. પરંતુ સુધારાને સરળ હોઈ શકે છે. અને તેથી હંમેશા પર ધ્યાન કેન્દ્રિત આઉટપુટ ખૂબ પ્રથમ વાક્ય. અને તમે ન કરો તો તે સમજે છે, માત્ર જોવા કીવર્ડ્સ માટે કે હોઈ શકે છે કડીઓ અને રેખા નંબર, અને અક્ષર છે, જ્યાં કે ભૂલ હોઈ શકે છે. હવે મને આગળ જાઓ અને ટાઈપ કરીએ કોઈ સ્લેશ, શબ્દમાળા દાખલ કરો. હમ્મ, તે કંઇ નથી કહેતા છે હેલો. શા માટે? ઠીક છે, યાદ છે, જ્યાં તે ચાલી રહ્યું છે? તે કદાચ આ ક્ષણે અટકી છે લૂપ, તમે કરશે જો, રેખા છ પર, ડિઝાઇન દ્વારા શબ્દમાળા વિચાર કારણ કે, CS50 સ્ટાફ દ્વારા લખવામાં, શાબ્દિક માત્ર બેસી ગયું છે ત્યાં રાહ જોઈ, અને રાહ જોઈ, અને એક શબ્દમાળા માટે રાહ જોઈ રહ્યું. બધા અમે શબ્દમાળા દ્વારા અર્થ માનવ ઈનપુટ છે. તેથી તમે શું જાણો છો? મને આગળ જવા દો. અને માત્ર એક ધૂન પર, મને દો મારું નામ, ડેવિડ લખો દાખલ કરો. હવે હું એક વધુ ગતિશીલ કાર્યક્રમ છે. તે જણાવ્યું હતું કે, ડેવિડ હેલો. જો હું આગળ વધો અને આ ફરીથી ચલાવો, મને કહે છે Zamila નામ પ્રયાસ કરો, દાખલ કરો. અને હવે અમે એક ગતિશીલ કાર્યક્રમ છે. હું હાર્ડ વિશ્વ કોડેડ નથી. હું હાર્ડ કોડેડ ન હોય નામ, અથવા ડેવિડ, અથવા Zamila. હવે તે કાર્યક્રમો જેવા વધુ છે આપણે જાણીએ છીએ, જ્યાં જો તે ઇનપુટ લે છે, તે સહેજ અલગ આઉટપુટ પેદા કરે છે. હવે, આ શ્રેષ્ઠ નથી વપરાશકર્તા અનુભવ, અથવા યુએક્સ. હું કાર્યક્રમ ચાલે છે. મને ખબર નથી કે હું શું રહેવા છું આવું કરવા માટે, જ્યાં સુધી હું ખરેખર જોવા અથવા સ્ત્રોત કોડ યાદ કરે છે. તેથી વપરાશકર્તા બનાવવા દો થોડી વધુ સારી રીતે અનુભવ વસ્તુઓ સરળ સાથે. મને આ પાછા જાઓ કાર્યક્રમ છે, અને માત્ર printf કહે છે. અને મને આગળ વધો અને કહે નામ, કોલોન દો, અને એક જગ્યા છે, અને પછી અર્ધવિરામ. અને માત્ર કિક્સ માટે, આ બોલ પર કોઈ તીવ્ર નકારાત્મક પ્રતિક્રિયા એન. અને તે ઇરાદાપૂર્વકની છે, કારણ કે હું નથી માંગતા પ્રોમ્પ્ટ આગળના વાક્ય પર ખસેડો. હું, તેના બદલે, આ કરવા માંગો છો, શબ્દમાળા બનાવવા નવું મશીન મારા કોડ પુનઃકમ્પાઈલ કોડ ડોટ શબ્દમાળા સ્લેશ. આહ, આ ખૂબ prettier છે. હવે હું ખરેખર શું ખબર કમ્પ્યુટર મને તે એક નામ આપવા માંગે છે. તેથી હું આગળ જાઓ અને ટાઇપ કરવા માટે જઇ રહ્યો છું રોબ માં, રોબ દાખલ કરો, અને હેલો. તેથી, ખ્યાલ, આ હજુ પણ છે, અંતે દિવસ, માત્ર એક નવ વાક્ય કાર્યક્રમ. પરંતુ અમે આ બાળક પગલાં લીધાં છે. અમે એક વાક્ય લખ્યું હતું કે જેની સાથે આપણે પરિચિત, printf, હેલ્લો વિશ્વ હતા. પછી અમે તે થોડો undid. અને અમે ખરેખર શબ્દમાળા વિચાર ઉપયોગ થાય છે. અને અમે એક ચલ છે કે જે કિંમત નહીં. અને પછી અમે આગળ ગયા અને સુધારો તે ત્રીજી લાઇન સાથે વધુ. અને આ પુનરાવર્તન પ્રક્રિયા સોફ્ટવેર લખી સાચી કી છે. CS50, અને સામાન્ય રીતે જીવન માં, તમે સામાન્ય રીતે, નીચે બેસી ન જોઈએ મન માં એક કાર્યક્રમ છે, અને લેખન પ્રયાસ બધા એક જ સમયે સમગ્ર ખરેખર બાબત. તે અનિવાર્ય છે, જે રીતે પરિણમશે વધુ ભૂલો અમે કરતાં જાતને અહીં જોવા મળી હતી. હું પણ આ દિવસે માટે, સતત અન્ય મૂર્ખ ભૂલો કરી છે, ખરેખર મુશ્કેલ ભૂલો છે બહાર આકૃતિ કઠણ છે. પરંતુ જો તમે વધુ ભૂલો વધુ કરશે કોડ ઓફ લીટીઓ તમે એક જ સમયે બધા લખી. અને તેથી આ પ્રથા, કોડ એક થોડુંક લખો કે જે તમારી સાથે આરામદાયક છો, સંકલન તે માટે, તેને ચલાવવા વધુ સામાન્ય રીતે, તે ચકાસવા પછી થઈ ખસેડવા કે જેથી જેમ અમે રાખવામાં layering અને છેલ્લા અઠવાડિયે layering, કંઈક મકાન ખૂબ જ વધુ જટિલ કંઈક કરવા માટે સરળ, અહીં જ કરી. નીચે બેસી નથી, અને કરવાનો પ્રયાસ સમગ્ર સમસ્યા લખો. ખરેખર આ બાળક પગલાં લેવા. હવે, શબ્દમાળાઓ તમામ નથી પોતાને સહી ઉપયોગી છે. અમે ખરેખર છો, આદર્શ રીતે, જેમ અમારા ટૂલકિટ બીજું કંઈક છે. તેથી આપણે ખરેખર બરાબર તે કરીએ. મને આગળ હવે જાઓ અને ચાબુક દો થોડા અલગ કાર્યક્રમ. અને અમે પૂર્ણાંક માટે, આ int.c કહી શકશો. હું જાઉં છું, એ જ રીતે, CS550.h સમાવેશ થાય છે. હું પ્રમાણભૂત IO સમાવેશ જાઉં છું. અને તે ખૂબ સામાન્ય હોઈ ચાલે છે વર્ગ આ પ્રથમ થોડા દિવસોમાં. અને હું તૈયાર કરવા જઇ રહ્યો છું મારી એક મુખ્ય કાર્ય છે. અને હવે તેના બદલે એક શબ્દમાળા મેળવવામાં, ચાલો આગળ વધો અને પૂર્ણાંક વિચાર કરીએ. ચાલો તે હું કહી દો, અને તે વિચાર કૉલ પૂર્ણાંક, બંધ થતાં કૌંસ, અર્ધવિરામ. અને હવે ચાલો કરવું તેની સાથે કંઈક, printf. માતાનો કંઈક કહી દો હેલો, બેકસ્લેશ n એ, અલ્પવિરામ હું. તેથી હું ખૂબ ખૂબ એપોપ્લેક્સી છું શું હું માત્ર એક ક્ષણ પહેલા હતી. હું એક પ્લેસહોલ્ડર અહીં છે. હું હું અહીં અલ્પવિરામ છે, કારણ કે હું માંગો છો હું કે પ્લેસહોલ્ડર માં પ્લગ કરવા. તેથી આપણે આગળ વધીશું અને પ્રયાસ કરો આ કાર્યક્રમ કમ્પાઇલ. ફાઇલ int.c. કહેવામાં આવે છે તેથી હું કહું છું, પૂર્ણાંક બનાવવા માટે, દાખલ કરવા માટે જઇ રહ્યો છું. મારા ઓહ ગોડ, પરંતુ કોઈ મોટો સોદો છે, અધિકાર? ત્યાં એક ભૂલ છે. ત્યાં એક વાકયરચનામાં ભૂલ છે અહીં જેમ કે કાર્યક્રમ નથી કરી શકો છો int.c, રેખા અંદર સંકલિત કરી સાત અક્ષર 27, ભૂલ બંધારણમાં સ્પષ્ટ પ્રકાર ઘરનાં પરચૂરણ કામો સ્ટાર, ગમે છે. પરંતુ દલીલ પ્રકાર પૂર્ણાંક છે. તેથી અહીં પણ, અમે એક-- જઈ રહ્યાં છો તેમ છતાં આજે સામગ્રી ઘણો છે, અમે સાથે તમને ભૂલાવી જઈ રહ્યાં છો સંપૂર્ણપણે સી દરેક લક્ષણ, અને પ્રોગ્રામિંગ વધુ સામાન્ય રીતે, માત્ર આ પ્રથમ થોડા અઠવાડિયા માં. તેથી ઘણી જ હશે કલકલ કે જેની સાથે તમે પરિચિત નથી. અને હકીકતમાં, ઘરનાં પરચૂરણ કામો સ્ટાર કંઈક છે અમે પાછા આવો જઈ રહ્યાં છો એક અથવા બે સપ્તાહ સમય. પરંતુ હવે માટે, ચાલો તો અમે કરી શકો છો તે જોવા શબ્દો છે કે જે પરિચિત છે પાર્સ. Formats-- તેથી અમે બંધારણમાં સાંભળ્યું specifier, બંધારણ કોડ પહેલાં. પરિચિત છે. ટાઇપ પરંતુ દલીલ પ્રકાર પૂર્ણાંક છે. એક મિનિટ રાહ જુઓ, હું પૂર્ણાંક છે. કદાચ ટકા ઓ ખરેખર કેટલાક વ્યાખ્યાયિત અર્થ હોય છે. અને, ખરેખર, તે કરે છે. પૂર્ણાંક, તમે કરવા માંગો છો, તો તે બદલે કામ કરવા માટે printf, તમે ખરેખર ઉપયોગ કરે છે અલગ ફોર્મેટ specifier. અને તમે આ ખબર નથી જ્યાં સુધી કોઈને તમે કહ્યું અથવા તમે તેને પહેલાં કર્યું હતું. પરંતુ ટકા હું શું છે સામાન્ય રીતે ઉપયોગ કરી શકાય છે પૂર્ણાંક માં પ્લગ માટે printf છે. તમે પણ ટકા ઉપયોગ કરી શકો છો દશાંશ પૂર્ણાંક માટે ડી. પરંતુ હું અહીં સરસ અને સરળ છે. તેથી અમે તે સાથે જઈશ. હવે દો મને આગળ વધો અને બનાવવા પુનઃ ચલાવો પૂર્ણાંક, દાખલ કરો. કે સારા છે કોઈ ભૂલો. ડોટ ઈન્ ઠીક છે, ખરાબ વપરાશકર્તા અનુભવ સ્લેશ, કારણ કે હું મારી જાતને કહ્યું નથી શુ કરવુ. પરંતુ તે દંડ છે. હું ઝડપથી પર મોહક છું. અને હવે મને આગળ જવા દો અને ડેવિડ, ઠીક છે, Zamila, રોબ લખો. ઠીક છે, તેથી આ એક સારી બાબત છે. આ સમય, હું એક કાર્ય ઉપયોગ કરું છું, એક પઝલ ભાગ, પૂર્ણાંક વિચાર કહેવાય છે. અને તે out-- વળે છે અને અમે પડશે term-- આ પછીથી જુઓ CS50 સ્ટાફ અમલમાં છે એવી રીતે શબ્દમાળા વિચાર તે માત્ર શારીરિક કરશે તમારા માટે એક શબ્દમાળા મળે છે. તે પૂર્ણાંક વિચાર અમલમાં છે એવી રીતે કે તે માત્ર કરશે તમારા માટે એક પૂર્ણાંક વિચાર. અને જો તમે, માનવ, સહકાર નથી, તે છે શાબ્દિક માત્ર પર જઈને , ફરીથી પ્રયત્ન ફરીથી પ્રયાસ કરી, ફરીથી પ્રયત્ન કહે છે, શાબ્દિક ત્યાં બેઠક રહ્યાં, ત્યાં સુધી તમે કેટલાક જાદુઈ નંબર સાથે ઉપકાર, 50, અને હેલો 50 જેવા. અથવા આપણે આ ફરીથી ચલાવવા જો અને 42 પ્રકાર, હેલો 42. અને તેથી પૂર્ણાંક વિચાર કાર્ય પઝલ ભાગ ની અંદર પૂરતી તર્ક છે, પૂરતી વિચાર, બહાર આકૃતિ, એક શબ્દ શું છે? અને નંબર શું છે? માત્ર સ્વીકારી, આખરે, નંબરો. તેથી તે તારણ આ બધા કે અર્થસભર નથી. અત્યાર સુધી. તેથી, યે, છેલ્લા સમય અમે ખૂબ ઝડપથી ગયા અમલીકરણ રમતો, અને એનિમેશન માં, અને સ્ક્રેચ કલાત્મક કામ કરે છે. અને અહીં, અમે સામગ્રી આવી રહી છે હેલો વર્લ્ડ, અને હેલો 50. તે બધા પ્રેરણાદાયી નથી. અને, ખરેખર, આ પ્રથમ થોડા ઉદાહરણો થોડો સમય લેશે ઉત્તેજના માર્ગ તૈયાર કરવા. પરંતુ અમે ખૂબ જ વધારે હોય છે હકીકતમાં હવે નિયંત્રણ. અને અમે જઈ રહ્યાં છો ખૂબ જ ઝડપથી layering શરૂ આ મૂળભૂત પૌરાણિક ટોચ પર. પરંતુ પ્રથમ, ચાલો સમજીએ શું મર્યાદાઓ હોય છે. હકીકતમાં, એક વસ્તુઓ સ્ક્રેચ સરળતાથી નથી જુઓ અમને કરવા દો ખરેખર હૂડ નીચે, અને શું એક સમજવા કમ્પ્યુટર છે, તે શું કરી શકે છે, અને તેની મર્યાદાઓ શું છે. અને, ખરેખર, કે અભાવ સમજ, સંભવિત, લાંબા ગાળાના આપણા પોતાના mistakes-- લેખન તરફ દોરી શકે છે ભૂલો, અસુરક્ષિત સોફ્ટવેર લખવાનું કે અમુક રીતે હેક નહીં. તેથી આપણે તરફ કેટલાક પગલાં લેવા દો આ થોડો વધુ સારી રીતે સમજવા , માર્ગ કહે છે, નીચેના ઉદાહરણમાં. હું આગળ જાઓ અને અમલ કરવા માટે જઇ રહ્યો છું વાસ્તવિક ઝડપી એક કાર્યક્રમ નાનો ઝેરી સાંપ કહેવાય છે. જેમ, કેટલાક નંબરો મળીને ઉમેરો. અને હું કેટલાક ખૂણા કોડ માટે જઇ રહ્યો છું અહીં, અને માત્ર કૉપિ કરો અને પેસ્ટ જ્યાં હું પહેલાં હતી, માત્ર તેથી અમે વહેલા જઈને વિચાર કરી શકો છો. હવે તો હું મૂળભૂત શરૂઆત મળી છે નાનો ઝેરી સાંપ કહેવાય કાર્યક્રમ. અને ચાલો આગળ વધો અને આ કરવા દો. હું આગળ જાઓ જાઉં છું અને કહે છે, intx પૂર્ણાંક વિચાર નોંધાયો નહીં. અને તમે શું જાણો છો? એક સારો વપરાશકર્તા અનુભવ બનાવવા દો. તેથી આપણે માત્ર કહેવું એક્સ છે, અને અસરકારક રીતે દો વપરાશકર્તા પૂછવા અમને એક્સ આપે છે. અને પછી મને આગળ વધો અને કહે છે, printf દો કેવી રીતે વાય છે, આ સમય અપેક્ષા વપરાશકર્તા બે કિંમતો. અને પછી ચાલો ફક્ત આગળ જાઓ અને કહે છે, printf, એક્સ અને વાય ની રકમ છે. અને હવે હું ટકા ઓ કરવા નથી માંગતા. હું ટકા હું કરવા માંગો છો, બેકસ્લેશ n એ, અને પછી રકમ કિંમત માં પ્લગ. તેથી હું આ કરી કેવી રીતે જઈ શકે? શું તમે જાણો છો? હું કેવી રીતે ચલો વાપરવા માટે ખબર. મને માત્ર એક નવી, પૂર્ણાંક z જાહેર કરીએ. અને હું અહીં એક અનુમાન લેવા માટે જઇ રહ્યો છું. જો આ સમાન ચિહ્નો છે ભાષા, કદાચ હું x વતા y માત્ર કરી શકો છો, તેથી હું અંત તરીકે મારા લાંબા એક અર્ધવિરામ સાથે વિચાર્યું? હવે હું અહીં પાછા નીચે જઈ શકે છે, z માં પ્લગ, એક અર્ધવિરામ સાથે આ વિચાર સમાપ્ત કરો. અને હવે જુઓ, આ તો દો રેખાઓ એક્સ સિક્વન્સ પૂર્ણાંક વિચાર છે. વાય પૂર્ણાંક વિચાર છે. , એક્સ અને વાય ઉમેરો કિંમત સ્ટોર z-- તેથી, ફરી, સમાન સાઇન યાદ બરાબર નથી. તે જમણેથી ડાબી સોંપણી છે. અને ચાલો તે રકમ છાપે દો એક્સ અને વાય શાબ્દિક z નથી, પરંતુ z ની અંદર શું છે. તેથી આપણે નાનો ઝેરી સાંપ બનાવવા દો - સરસ, કોઈ ભૂલો આ સમય. કોઈ સ્લેશ નાનો ઝેરી સાંપ, દાખલ કરો, X માટે 1 પ્રયત્ન રહ્યું છે. વાય 2 હોઈ ચાલે છે. અને એક્સ અને વાય ની રકમ 3 છે. તેથી તે બધા દંડ અને સારી છે. તેથી તમે ગણિત કલ્પના કરશે આ જેમ એક કાર્યક્રમ કામ કરીશું. પરંતુ તમે શું જાણો છો? આ ચલ, વાક્ય છે 12, પણ જરૂરી? તમે આદત માં વિચાર કરવાની જરૂર નથી માત્ર ચલો વસ્તુઓ સ્ટોર માત્ર કારણ કે તમે કરી શકો છો. અને હકીકતમાં, તે સામાન્ય રીતે છે ગણવામાં ખરાબ ડિઝાઇન તમે એક ચલ બનાવતા હોવ તો, કહેવાય આ કિસ્સામાં z, તે કંઈક સ્ટોર, અને તે પછી તરત તેની મદદથી, પરંતુ ક્યારેય ફરીથી. શા માટે કંઈક એક નામ આપો ઝેડ જેવી જો તમે શાબ્દિક છો ઉપયોગ કરવા જઈ વસ્તુ માત્ર એક જ વાર, અને તેથી જ્યાં તમે બનાવેલ સમીપસ્થ પ્રથમ સ્થાને તે કોડ ઓફ લીટીઓ દ્રષ્ટિએ જેથી બંધ? તેથી તમે શું જાણો છો? તે તારણ છે કે સી ખૂબ સરળ છે. હું ખરેખર કરવા માંગો છો પ્લગ-ઇન કિંમતો અહીં, હું એક નવા ચલ જાહેર કરવાની જરૂર નથી. હું માત્ર પ્લગ-ઇન એક્સ શકે વત્તા વાય, કારણ કે સી સમજે અંકગણિત, અને ગાણિતિક ઓપરેટરો. તેથી હું ફક્ત કહે કરી શકો છો, આ ગણિત કરવા માટે, x વતા y, ગમે તે કિંમતો છે, પ્લગ પરિણામે કે જેઓ શબ્દમાળા માં પૂર્ણાંક. તેથી આ હોઇ શકે છે, છતાં માત્ર એક જ વાક્ય ટૂંકા, એક સારી ડિઝાઇન, એક સારી કાર્યક્રમ, કારણ કે ત્યાં ઓછા કોડ છે, તેથી ઓછી મને સમજવા માટે. અને તે પણ માત્ર ક્લીનર છે, છો તે અમે નથી ત્યાં સુધી કે નવા શબ્દો દાખલ, નવા સંજ્ઞાઓ વાપરીને, ઝેડ જેવી, છતાં પણ તેઓ ખરેખર નથી એક હેતુ ખૂબ સેવા આપે છે. કમનસીબે, ગણિત નથી બધા કે વિશ્વસનીય ક્યારેક. ચાલો આગળ વધો અને આ કરવા માટે. હું આગળ જાઓ જાઉં છું હવે નીચે પ્રમાણે કરો. માતાનો printf, ટકા હું, વત્તા ટકા ગણીએ હું ટકા હું, બેકસ્લેશ n એ રહેશે. અને હું છે આ xyx વતા y કરવા જઇ રહ્યો છું. તેથી હું ફક્ત લખાણ લખે માટે જઇ રહ્યો છું આ સહેજ અહીં અલગ. મને માત્ર એક ઝડપી સેનીટી ચેક કરીએ. ફરીથી, આગળ જાતને ન મળી દો. નાનો ઝેરી સાંપ, કોઈ સ્લેશ નાનો ઝેરી સાંપ છે. એક્સ 1, વાય 2, 1 વત્તા 2 3 છે. તેથી તે સારી છે. પરંતુ હવે આ જટિલ દો એક બીટ, અને એક નવી ફાઈલ બનાવો. હું આ એક કૉલ જાઉં છું, કહે છે, ints, પૂર્ણાંકો માટે બહુવચન. મને શરૂ જ્યાં હું એક ક્ષણ પહેલા કરવામાં આવી હતી. પરંતુ હવે આપણે થોડા અન્ય રેખાઓ કરવા દો. મને આગળ વધો અને નીચેના કરીએ, printf, ટકા હું, ઓછા ટકા હું ટકા હું, અલ્પવિરામ એક્સ, અલ્પવિરામ yx ઓછા વાય છે. તેથી હું થોડી કરી રહ્યો છું ત્યાં વિવિધ ગણિત. ચાલો આપણે બીજો દાખલો ગણીએ. ટકા એટલે વખત ટકા હું ટકા હું, બેકસ્લેશ n છે. માતાનો પ્લગ ઈન એક્સ, અને વાય, અને એક્સ વખત વાય દો. અમે ફૂદડી ઉપયોગ કરશો વખત માટે તમારા કમ્પ્યુટર. તમે X ઉપયોગ કરતા નથી. X છે અહીં એક ચલ નામ. તમે ગુણાકાર સ્ટાર વાપરો. એક કરીએ. Printf ટકા હું વિભાજિત ટકા હું, ટકા હું છે બેકસ્લેશ n એ. XY વાય ભાગ્યા જેથી તમે સી આગળ સ્લેશ ઉપયોગ ડિવિઝન કરવું. અને અન્ય એક કરીએ. ટકા હું બાકીની વિભાજિત ટકા હું, ટકા હું છે. xy-- અને હવે બાકીની શું બાકી રહ્યું છે. તમે એક વિભાજન પ્રયાસ એક અંશ છેદ, કેટલી બાકી છે કે તમે બહાર નથી વિભાજીત કરી શકે છે? તેથી ત્યાં ખરેખર નથી, જરૂરી પ્રતીક અમે આ માટે એક ગ્રેડ શાળા માં ઉપયોગ કર્યો છે. પરંતુ ત્યાં સી માં તમે કરી શકો છો કહે છે એક્સ મોડ્યૂલો વાય છે, જ્યાં આ context-- આ ટકાવારી ચિહ્ન ભેળસેળ જ્યારે તમે અંદર છો બે અવતરણચિહ્નો ની, printf ના, ટકા અંદર ફોર્મેટ specifier તરીકે વપરાય છે. તમે બહાર ટકા ઉપયોગ કરો છો ત્યારે કે ગાણિતિક સમીકરણ માં, તે મોડ્યુલર માટે મોડ્યૂલો ઓપરેટર છે અમારા હેતુઓ માટે અંકગણિત અહીં, માત્ર અર્થ એ થાય, શું છે X બાકીની વાય ભાગ્યા? તેથી X વાય ભાગ્યા એક્સ સ્લેશ વાય છે. વાય ભાગ્યા એક્સ બાકીની શું છે? તે ફેરફારની વાય એક્સ એક પ્રોગ્રામર તરીકે કહે છે. તેથી જો હું કોઈ ભૂલો અહીં કરવામાં, મને દો આગળ વધો અને ints, બહુવચન, સરસ બનાવવા માટે, અને કોઈ સ્લેશ ints. અને ચાલો આગળ વધો દો અને તો, ચાલો આપણે કહેવું, 1, 10 દો. બધા હક છે, 1 વત્તા 10 11, ચેક છે. 1 ઓછા 10 નકારાત્મક 9, ચેક છે. 1 ગુણ્યા 10 10 ચેક છે. 1 10 ધારો દ્વારા વિ ઠીક છે, અમે અવગણો પડશે કે એક. 1 બાકીની 10 ભાગ્યા 1 છે. તે સાચુ છે. પરંતુ અહીં એક ભૂલ છે. તેથી એક હું મૂકી મારા પર હાથ, યોગ્ય નથી. હું તેનો અર્થ, તે 0 થી બંધ છે. 1 10 દ્વારા વિ, તમે જાણો છો, અમે હો તો કેટલાક ખૂણા કાપી, ખાતરી કરો કે, તે શૂન્ય છે. પરંતુ તે ખરેખર 1/10 હોવી જોઈએ, 0.1, અથવા 0.10, 0,1000, અથવા તેથી આગળ. તે ખરેખર શૂન્ય ન હોવી જોઈએ. વેલ, તે તારણ છે કે જે કોમ્પ્યુટર છે શાબ્દિક કરી આપણે શું કરવા તે જણાવ્યું હતું. અમે વાય ભાગ્યા એક્સ ગણિત કરી રહ્યા છે. અને બંને એક્સ અને વાય, લાઇન દીઠ કોડ અગાઉ પૂર્ણાંકો છે. વધુમાં, 15 લીટી પર, અમે છે printf, અરે, printf પ્લગ-ઇન કહેવાની પૂર્ણાંક, પ્લગ ઈન પૂર્ણાંક, પ્લગ-ઇન એક integer-- ખાસ એક્સ, અને પછી વાય છે, અને પછી એક્સ વાય દ્વારા વિભાજિત. એક્સ અને વાય ints છે. અમે ત્યાં સારા છો. પરંતુ શું એક્સ એક્સ દ્વારા વહેંચવામાં આવે છે? X વિભાજિત દ્વારા વાય પ્રયત્ન કરીશું, ગાણિતિક, 1/10, અથવા 0.1, કે જે વાસ્તવિક નંબર, એક વાસ્તવિક નંબર છે આવી રહી છે, સંભવિત, એક દશાંશ બિંદુ. તે પૂર્ણાંક નથી. પરંતુ શું નજીક છે 1/10, અથવા 0.1 પૂર્ણાંક? અરે વાહ, તે પ્રકારની શૂન્ય છે. 0.1 આ ખૂબ જેવી છે. અને 1 આ જ છે. તેથી 1/10 નજીક છે 0 કરતાં તે એક છે. અને તેથી સી us-- માટે કરી છે પ્રકારની કારણ કે અમે તેને એક-- કહ્યું કે પૂર્ણાંક કપાય છે. તે કિંમત છે, જે ફરીથી છે લેવા 0,1000 કંઈક હશે તેવું માનવામાં, 0 અને તેથી આગળ. અને તે બધું કપાય છે આ બાદ ચિહ્ન પછી જેથી આ તમામ સામગ્રી, કારણ કે તે નથી પૂર્ણાંક ની કલ્પના ફિટ છે, કે જે માત્ર નકારાત્મક 1, 0, 1 જેમ એક નંબર છે, ઉપર અને નીચે, તે બધું દૂર ફેંકી દે છે કારણ કે તમે દશાંશ ચિહ્ન પછીના એક દશાંશ બિંદુ ફિટ કરી શકો છો વ્યાખ્યા દ્વારા પૂર્ણાંક. તેથી અહીં જવાબ શૂન્ય છે. તેથી અમે આ કેવી રીતે ઠીક છે? અમે બધા સાથે મળીને અન્ય ઉકેલ જરૂર છે. અને અમે આ નીચે પ્રમાણે કરી શકે છે. મને આગળ વધો અને એક નવું બનાવવા ફાઇલ આ એક floats.c કહેવાય છે. અને અહીં તેને સંગ્રહો એ જ ડિરેક્ટરીમાં, float.c. અને મને આગળ વધો અને નકલ દો અગાઉ તે કોડ અમુક છે. પરંતુ તેના બદલે મેળવવામાં પૂર્ણાંક, આ કરવા દો. મને એક અપૂર્ણાંક બિંદુ કિંમત આપો X કહેવાય છે. જ્યાં એક અપૂર્ણાંક બિંદુ કિંમત માત્ર શાબ્દિક અર્થ છે ફ્લોટિંગ પોઇન્ટ સાથે કંઈક. તે ડાબી ખસેડવા અધિકાર કરી શકો છો. તે એક વાસ્તવિક સંખ્યા છે. મને કૉલ કરો પૂર્ણાંક વિચાર છે, પરંતુ ફ્લોટ વિચાર, પણ મેનુ વચ્ચે હતી જે C250 પુસ્તકાલય વિકલ્પો. માતાનો વાય ફ્લોટ બદલીએ. તેથી આ ફ્લોટ વિચાર બની જાય છે. અને હવે, અમે નથી ints પ્લગ કરવા માંગો છો. તે તારણ અમે ટકા ઉપયોગ કરે છે ફ્લોટ માટે એફ, ફ્લોટ ટકામાં એફ, અને હવે તેને સંગ્રહો. અને હવે, આંગળીઓ ઓળંગી, બનાવવા ફ્લોટ્સ, સરસ, કોઈ સ્લેશ તરે. X એક 1. વાય હોઈ ચાલે છે 10 ફરીથી પ્રયત્ન રહ્યું છે. અને, સરસ, ઠીક મારા વધુમાં યોગ્ય છે. હું વધુ આશા હતી, પરંતુ હું તેને લખવા માટે ભૂલી ગયા છો. તેથી આપણે જાઓ અને આ લોજિકલ ભૂલ સુધારવા દો. ચાલો આગળ વધો અને નીચેના પડાવી લેવું દો. અમે હમણાં જ થોડી કૉપિ અને પેસ્ટ કરવું પડશે. અને હું ઓછા કહેવું જાઉં છું. અને હું વખત કહેવું જાઉં છું. અને હું વિભાજિત કહેવું જાઉં છું. અને હું મોડ્યૂલો કરવા માટે નથી જતા છું, જે સંગત અહીં, નથી એફ દ્વારા વિભાજી, અને સમય વત્તા ઠીક છે, ચાલો આ ફરીથી કરવા દો. બનાવો ફ્લોટ્સ, કોઈ સ્લેશ ફ્લોટ્સ, અને 1, 10, and-- સરસ, ના, બરાબર. તેથી હું એક મૂર્ખ માણસ છું. તેથી આ ખૂબ જ સામાન્ય છે કોમ્પ્યુટર વિજ્ઞાન આ જેમ મૂર્ખ ભૂલો કરી. શિક્ષણશાસ્ત્ર વિષયક હેતુઓ માટે, શું હું ખરેખર કરવા માગતો વિજ્ઞાન અહીં બદલી કરવામાં આવી હતી વત્તા, ઓછા, ધી ટાઇમ્સ માટે, અને તમે વિભાજીત કરવા માટે, આસ્થાપૂર્વક આ કસરત દરમિયાન જણાયું. તેથી હવે આપણે આ ફરીથી કમ્પાઇલ કાર્યક્રમ, કોઈ સ્લેશ ફ્લોટ્સ નથી. અને ત્રીજી વખત માટે, ચાલો જુઓ જો તે મારી અપેક્ષાઓ મળે છે. 1, 10, દાખલ ઠીક છે, હા, 1.000, 10.000 ભાગ્યા, 0,100000 છે. અને તે તારણ છે કે અમે નિયંત્રિત કરી શકો છો કેવી રીતે ઘણા નંબરો છે કે જેઓ એ પોઇન્ટ છે. અમે ખરેખર ચાલશે. અમે પાછા કે આવવું પડશે. પરંતુ હવે, હકીકતમાં, ગણિત યોગ્ય છે. તેથી, ફરી, શું અહીં takeaway? તે તારણ આપે છે સી, ત્યાં છે કે માત્ર માત્ર strings-- અને હકીકતમાં, ત્યાં, ખરેખર નથી, કારણ કે અમે CS50 પુસ્તકાલય સાથે તે ઉમેરો. પરંતુ ત્યાં ફક્ત ints નથી. પણ તરે છે. અને તે અન્ય માહિતી એક ટોળું બહાર વળે પ્રકારો પણ છે કે અમે લાંબા પહેલાં ઉપયોગ કરશો. બહાર ફેંકે છે તમે એક માંગો છો, તો પાત્ર, એ અક્ષરોની એક સ્ટ્રિંગ છે, તમે માત્ર એક કોલસો બનાવો ઉપયોગ કરી શકો છો. બહાર ફેંકે છે કે જો તમે એક bool માંગો છો, બુલિયન કિંમત, સાચું કે ખોટું માત્ર CS50 પુસ્તકાલય માટે આભાર, અમે કરેલા તેમજ સી bool ડેટા પ્રકાર માટે ઉમેરવામાં આવ્યું. પરંતુ તે પણ હાજર છે અન્ય ઘણી ભાષાઓમાં તેમજ. અને તે તમને ક્યારેક બહાર વળે મોટી સંખ્યામાં પછી મૂળભૂત રીતે આવે છે જરૂર ints અને ફ્લોટ્સ સાથે. અને હકીકતમાં, ડબલ એક નંબર છે કે 32 બિટ્સ, પરંતુ 64 બિટ્સ વાપરે છે. અને લાંબા સમય સુધી નંબર છે કે 32, બીટ્સ પરંતુ 64 બિટ્સ વાપરે છે, અનુક્રમે, ફ્લોટિંગ બિંદુ માટે મૂલ્યો અને પૂર્ણાંકો, અનુક્રમે. તેથી આપણે હવે ખરેખર દો ક્રિયા માં આ જુઓ. હું અહીં આગળ જવા માટે જઇ રહ્યો છું અને અન્ય એક કાર્યક્રમ ચાબુક. અહીં, હું આગળ જાઓ જાઉં છું અને cs50.h. સમાવેશ થાય છે અને મને જવા દો, પ્રમાણભૂત io.h. અને તમે કંઈક નોટિસ પડશે ફંકી અહીં શું થઈ રહ્યું છે. તે વસ્તુઓ કોડિંગ રંગ નથી એ જ રીતે કારણ કે તે પહેલાં કર્યું. અને તે તારણ છે, કારણ કે હું છે ફાઇલ નામ વસ્તુ નથી આપવામાં આવ્યું છે. હું આ એક કૉલ જાઉં છું sizeof.c, અને સેવ નહીં. નોટિસ અને મારા ખૂબ જ થાય છે કાળા પગલે સામે સફેદ કોડ. હવે, ઓછામાં ઓછા ત્યાં છે કેટલાક ત્યાં જાંબલી. અને તે વાક્યરચના પ્રકાશિત થયેલ છે. કારણ કે, તદ્દન સરળ, હું કર્યું છે IDE ફાઇલ કયા પ્રકારનું કહ્યું તે એક નામ આપી છે, અને ખાસ ફાઇલ એક્સ્ટેંશન. હવે, ચાલો આગળ વધો અને આ કરવા દો. હું આગળ અને ખૂબ જ જાઓ જાઉં છું ફક્ત નીચેના bool છાપે ટકા લુ છે. અમે પાછા આવો પડશે માત્ર એક ક્ષણ છે. અને પછી હું જાઉં છું bool પ્રિન્ટ માપ. અને હવે, માત્ર સેવ મારી જાતને કેટલાક સમય, હું છું સમગ્ર કરવા જઇ એક જ સમયે આ ટોળું. અને, ખાસ કરીને, હું જાઉં છું એક કોલસો બનાવો અને કોલસો બનાવો આ બદલો. આ એક, હું બદલવા માટે જઇ રહ્યો છું ડબલ અને ડબલ છે. આ એક, હું બદલવા માટે જઇ રહ્યો છું એક ફ્લોટ અને ફ્લોટ. આ એક, હું જાઉં છું પૂર્ણાંક અને પૂર્ણાંક બદલો. અને આ એક, હું જાઉં છું લાંબા લાંબા બદલવા માટે. અને તે હજુ પણ લઈ રહ્યો છે લાંબા સમય, લાંબા લાંબા. અને પછી, છેલ્લે, હું આપ્યો મારી એક ઘણી, શબ્દમાળા. તે તારણ આપે છે સી, ત્યાં છે કે ખાસ ઓપરેટર તરીકે ઓળખાય કે માપ શાબ્દિક છે , જ્યારે ચલાવવા માટે જવાનું, અમને કદ કહેવું આ ચલો દરેક. અને આ એક માર્ગ છે, હવે, અમે પાછા જોડાઈ શકે છે ગયા અઠવાડિયે ચર્ચા માહિતી અને પ્રતિનિધિત્વ. મને આગળ વધો અને સંકલન કરીએ ના કોઈ સ્લેશ કદ માપ. અને માતાનો જોવા દો. તે સી કે બહાર વળે છે, ખાસ CS50 IDE પર, ખાસ પર ઓપરેટિંગ સિસ્ટમ ઉબુન્ટુ, જે 64-બીટ ઓપરેટીંગ છે આ કિસ્સામાં સિસ્ટમ, એક bool રહ્યું છે જગ્યા એક બાઈટ ઉપયોગ કરે છે. કે કેવી રીતે કદ માપવામાં આવે છે, નથી બિટ્સ, પરંતુ બાઈટમાં. અને યાદ છે કે એક બાઇટ આઠ બિટ્સ છે. તેથી એક bool, પણ તમે તેમ છતાં 0 અથવા 1 તકનીકી માત્ર જરૂર છે, તે થોડી ઉડાઉ છે અમે તે કેવી રીતે અમલ કર્યો છે. તે ખરેખર સમગ્ર નો ઉપયોગ કરવા જઇ રહ્યું છે byte-- જેથી બધા zeros, કદાચ છે બધા મુદ્દાઓ, અથવા તે કંઈક, અથવા માત્ર એક 1 આઠ બિટ્સ વચ્ચે. એક કોલસો બનાવો દરમિયાન, એક અક્ષર માટે વાપરી છેલ્લા અઠવાડિયે દીઠ ASCII પાત્ર જેમ, એક અક્ષર હોવો રહ્યું છે. અને તે અમારી કલ્પના સાથે synchs તે કોઈ કરતાં વધુ 256 bits-- હોવા બદલે, તે કોઈ હોવા સાથે synchs અપ લાંબા સમય સુધી કરતાં 8 બીટ્સ છે, કે જે અમને ઘણા 256 તરીકે કિંમતો આપે છે. એક ડબલ રહ્યું છે 8 બાઇટ્સ અથવા 64 બિટ્સ હોય છે. એક ફ્લોટ 4 છે. પૂર્ણાંક 4 છે. એક લાંબા, લાંબા 8 હોય છે. અને શબ્દમાળા 8 હોય છે. પરંતુ તે વિશે ચિંતા કરશો નહીં. અમે તે સ્તર છાલ પાછા જઈ રહ્યાં છો. તે બહાર વળે છે, શબ્દમાળાઓ કરી શકો છો 8 બાઇટ્સ કરતાં લાંબા સમય સુધી છે. અને, ખરેખર, અમે તેવા પરચૂરણ ખર્ચ કર્યો પહેલેથી જ શબ્દમાળાઓ, હેલો વર્લ્ડ, 8 બાઇટ્સ કરતાં લાંબા સમય સુધી. પરંતુ અમે પાછા આવો પડશે માત્ર એક ક્ષણ છે. પરંતુ લઇ દૂર અહીં નીચેના છે. કોઈપણ કમ્પ્યુટર માત્ર મર્યાદિત છે મેમરી અને જગ્યા જથ્થો. તમે માત્ર ઘણા સ્ટોર કરી શકો છો તમારા Mac અથવા પીસી પર ફાઈલો. તમે માત્ર ઘણા કાર્યક્રમો સ્ટોર કરી શકો છો રેમ એક જ સમયે ચાલી રહ્યું છે, જરૂરી છે, પણ વર્ચ્યુઅલ મેમરી છે, કારણ કે તમે RAM ની એક મર્યાદિત રકમ માટે હોય છે. અને માત્ર જો ચિત્ર માટે જો તમે લેપટોપ ક્યારેય ખોલ્યું અથવા વધારાની મેમરી આદેશ આપ્યો કમ્પ્યુટર માટે, તમે ખબર નથી શકે છે કે તમારા કમ્પ્યુટર ની અંદર કંઈક કે જે દેખાય છે થોડી આ જેમ. તેથી આ માત્ર એક સામાન્ય નામ કંપની છે નિર્ણાયક છે કે કમ્પ્યુટર્સ માટે RAM બનાવે છે. અને રેમ જ્યાં કાર્યક્રમો છે રહેવા જ્યારે તેઓ ચલાવી રહ્યા છો. તેથી દરેક Mac અથવા પીસી, જ્યારે તમે ડબલ પર એક કાર્યક્રમ ક્લિક કરો, અને તે ખોલે છે, અને તે કેટલીક વર્ડ દસ્તાવેજ ખોલે અથવા તે કંઈક, તે સંગ્રહ કરે છે થોડી રેમ, કારણ કે રેમ ઝડપી છે તમારી હાર્ડ ડિસ્ક કરતાં, અથવા તમારા ઘન રાજ્ય ડિસ્ક. તેથી તે માત્ર છે કે જ્યાં કાર્યક્રમો જાઓ રહેવા માટે જ્યારે તેઓ ચલાવી રહ્યા છો, અથવા જ્યારે ફાઇલોની ઉપયોગ કરવામાં આવે છે. તેથી જો તમે વસ્તુઓ છે કે જે દેખાય છે તમારા લેપટોપ આ અંદર જેમ, અથવા સહેજ મોટી વસ્તુઓ તમારા ડેસ્કટોપ પર આધારિત છે. પરંતુ કી તમે માત્ર એક હોય છે આ વસ્તુઓ મર્યાદિત સંખ્યા. અને ત્યાં માત્ર એક મર્યાદિત જથ્થો છે હાર્ડવેર આ ડેસ્ક પર બેઠા અધિકાર અહીં. તેથી, ચોક્કસ, અમે સ્ટોર કરી શકો છો અનંત લાંબા નંબરો. અને, હજુ સુધી, તમે પાછા લાગે છે કે જો ગ્રેડ શાળા, કેટલા અંકો કરી શકો છો તમે યોગ્ય કરવા માટે હોય છે એક આ બાદ ચિહ્ન? તે બાબત માટે, કેટલા અંકો કરી શકો છો તમે દશાંશ ચિહ્ન ડાબી છે? ખરેખર, અનંત ઘણી. હવે, આપણે મનુષ્યો માત્ર કદાચ ખબર મિલિયન ઉચ્ચાર કેવી રીતે, અને અબજ ટ્રિલિયન, અને ક્વૉડ્રિલિયન, અને quintillion. અને હું મર્યાદા દબાણ છું મારા understanding-- અથવા my-- હું સમજી નંબરો, પરંતુ મારા નંબરો ઉચ્ચાર. પરંતુ તેઓ સાથે અનંત મોટા વિચાર કરી શકો છો ડાબી અનંત ઘણી અંકો અથવા આ બાદ ચિહ્ન અધિકાર છે. પરંતુ કમ્પ્યુટર્સ માત્ર એક છે મેમરી મર્યાદિત જથ્થો ટ્રાન્ઝિસ્ટર મર્યાદિત નંબર, લાઇટ બલ્બ અંદર મર્યાદિત સંખ્યા. તેથી શું થાય છે જ્યારે તમે જગ્યા બહાર ચલાવવા માટે? અન્ય શબ્દોમાં, જો તમે પાછા ગયા સપ્તાહે લાગે જ્યારે અમે નંબરો વિશે વાત કરી પોતાને, દ્વિસંગી રજૂ કરવામાં આવી રહી છે ધારો કે અમે મળી છે આ 8-બીટ કિંમત અહીં. અને અમે સાત 1 અને એક 0 છે. અને ધારો કે અમે માંગો છો આ કિંમત માટે 1 ઉમેરવા માટે. આ એક ખરેખર મોટી સંખ્યામાં હમણાં છે. આ 254 છે, જો હું યાદ છેલ્લા અઠવાડિયે જમણેથી ગણિત. પરંતુ જો હું શું બદલવા કે 1 જમણીબાજુનીસ્થિતિ 0? સમગ્ર નંબર છે, અલબત્ત, આઠ 1 માતાનો બની જાય છે. તેથી અમે હજુ પણ સારા છો. અને તે કદાચ રજૂ 255, છતાં સંદર્ભમાં પર આધાર રાખીને તે ખરેખર પ્રતિનિધિત્વ કરી શકે છે નકારાત્મક સંખ્યા. પરંતુ તે અન્ય સમય પર વધુ. આ લાગે છે જેમ તે વિશે છે તરીકે ઊંચા તરીકે હું ગણતરી કરી શકે છે. હવે, તે માત્ર 8 બીટ્સ છે. અને મારા મેક, ચોક્કસ, માર્ગ છે મેમરી કરતાં વધુ 8 બીટ્સ. પરંતુ તે મર્યાદિત નથી. તેથી જ દલીલ લાગુ પડે છે, પણ જો આપણે સ્ક્રીન પર આ રાશિઓ વધુ હોય છે. પરંતુ શું થાય છે જો તમે આ સંખ્યા, 255 સ્ટોર, અને તમે 1 બીટ ઉચ્ચ ગણતરી કરવા માંગો છો? તમે 255 થી 256 પર જાઓ કરવા માંગો છો. સમસ્યા, અલબત્ત, એ છે કે જો તમે શૂન્ય છેલ્લા અઠવાડિયે જેમ અંતે ગણતરી શરૂ, તમે ઉચ્ચ ગણતરી કરી શકે છે 256 તરીકે, એકલા 257 દો, એકલા 258 દો, કારણ કે એમ શું થાય છે જ્યારે તમે 1 ઉમેરવા માંગો છો? તમે જૂના ગ્રેડ શાળા કરો તો અભિગમ, તમે 1 અહીં મૂકવામાં, અને પછી 1 વત્તા 1 2 છે, પરંતુ તે છે ખરેખર શૂન્ય, તમે 1 વહન, 1 વહન, 1 હાથ ધરે છે. આ બધી બાબતો, આ 1, શૂન્ય પર જાઓ. અને તમે મુકાશે, હા, કોઈને ડાબી બાજુ પર 1, નિર્દેશ. પરંતુ બધું તમે કરી શકો છો ખરેખર જોવા અને મેમરી ફિટ માત્ર આઠ 0, જે કહે છે છે અમુક બિંદુએ તમે, કોમ્પ્યુટર, ઊંચી સુધી ગણતરી કર્યો છે, તમે છો આસપાસ લપેટી રહ્યું છે, તે જણાય છે, શૂન્ય, અથવા કદાચ નકારાત્મક નંબરો, જે શૂન્ય કરતાં પણ ઓછી છે. અને અમે પ્રકારની આ જોઈ શકો છો. મને આગળ વધો અને લખીએ એક વાસ્તવિક ઝડપી અહીં કાર્યક્રમ. મને આગળ વધો અને લખીએ એક કાર્યક્રમ ઓવરફ્લો કહેવાય છે. Cs50.h સમાવેશ થાય છે, સમાવેશ થાય છે પ્રમાણભૂત IO.h-- ઓહ, હું ખરેખર મારા સિન્ટેક્સ હાઇલાઇટિંગ નહીં. તેથી આપણે overflow.c તરીકે આ સંગ્રહો. અને હવે પૂર્ણાંક મુખ્ય void-- અને લાંબા પહેલાં, અમે પડશે શા માટે સમજાવીને પાછા આવો અમે પૂર્ણાંક મુખ્ય રદબાતલ લખવાનું રાખવા. પરંતુ હવે માટે, ચાલો માત્ર દો તે, તે લેવા માટે મંજૂરી આપી હતી. માતાનો મારી પૂર્ણાંક આપે છે, અને 0 થી પ્રારંભ. પછી પૂર્ણાંક માટે કરીએ હું zero-- વિચાર ખરેખર, એક અનંત લૂપ કરવા દો અને જુઓ શું થાય છે. જ્યારે સાચું હોય, તો પછી માતાનો એન છાપે દો ટકા છે હું બેકસ્લેશ n એ, પ્લગ ઈન એન. પરંતુ, હવે, એ નહીં એ વત્તા 1 કરીએ. તેથી અન્ય શબ્દોમાં, દરેક પર આ અનંત લૂપ ઇટરેશન, માતાનો એન કિંમત લેવા દો, અને તે માટે 1 ઉમેરવા, અને પછી ડાબી પર એ પાછા પરિણામ સ્ટોર કરે છે. અને હકીકતમાં, અમે વાક્યરચના જોઇ છે સહેજ આ જેમ, થોડા સમય માટે. એક ઠંડી યુક્તિ બદલે છે આ બધા બહાર લખવાની, તમે ખરેખર કહી શકો છો એક n વત્તા બરાબર 1. અથવા તમે ખરેખર ફેન્સી પ્રયત્ન કરવા માંગો છો, તો તમે કહી શકો છો એ વત્તા વત્તા અર્ધવિરામ. પરંતુ આ બાદમાં માત્ર બે છે અમે શું વાકયરચનામાં ખાંડ કૉલ કરશો પ્રથમ વસ્તુ છે. પ્રથમ વસ્તુ, વધુ સ્પષ્ટ છે સંપૂર્ણપણે દંડ, તદ્દન યોગ્ય. પરંતુ આ વધારે સામાન્ય છે, હું કહું છું પડશે. તેથી અમે માત્ર એક ક્ષણ માટે આ કરીશ. ચાલો હવે બનાવવા ઓવરફ્લો, જે અવાજ તેના બદલે અપશુકનિયાળ, કોઈ સ્લેશ ઓવરફ્લો. માતાનો જોવા દો, એ ખૂબ મોટી મેળવવામાં આવે છે. પરંતુ ચાલો લાગે છે, કેવી રીતે મોટી એ વિચાર કરી શકો છો? N એ કોઇ પૂર્ણાંક છે. અમે માપ સાથે એક ક્ષણ પહેલા જોયું ઉદાહરણ પૂર્ણાંક ચાર બાઇટ્સ છે. અમે ગયા સપ્તાહે પરથી ખબર, ચાર બાઇટ્સ છે 32 બિટ્સ, કારણ કે 8 ગુણ્યા 4, 32 છે. કે 4 અબજ હોઈ ચાલે છે. અને અમે 800,000 ઉપર છે. આ માટે કાયમ માટે લઇ રહ્યું છે હું કદાચ કરી શકો છો તરીકે ઊંચા ગણતરી. તેથી હું આગળ જાઓ જાઉં છું કારણ કે તમે લાંબા પહેલાં કદાચ, અને નિયંત્રણ સી પ્રમાણિકપણે હિટ, નિયંત્રણ સી, ઘણો છે, જ્યાં નિયંત્રણ આવ્યું સી સામાન્ય અર્થ રદ. કમનસીબે, આ કારણ કે વાદળ ચાલી રહ્યું છે, ક્યારેક વાદળ છે તેથી ખૂબ સામગ્રી બહાર spitting, ખૂબ આઉટપુટ, તે ચાલી રહ્યું છે મારા ઇનપુટ માટે થોડો સમય લાગી મેઘ પર મેળવો. તેથી ભલે હું હિટ નિયંત્રણ આવ્યું સી થોડીવાર પહેલા, આ ચોક્કસપણે બાજુ છે એક અનંત લૂપ અસર. અને તેથી આવા કિસ્સાઓમાં, અમે છો કે હોઈ છોડી જઈ રહી છે. અને અમે અન્ય ઉમેરવા જઈ રહ્યાં છો અહીં ટર્મિનલ વિન્ડોમાં પ્લસ, અલબત્ત, જે નથી સાથે તે જેમ, કારણ કે તે હજુ પણ વિચારણા છે. અને ચાલો આગળ વધો અને બનાવી દો થોડી વધુ વાજબી. હું આગળ જાઓ અને કરવા જઇ રહ્યો છું આ માત્ર ત્યારે જ finitely ઘણી વખત. માતાનો લૂપ માટે ઉપયોગ કરીએ, જે હું અગાઉ સંકેત આપ્યો છે. ચાલો આ કરીએ. મને બીજા ચલ પૂર્ણાંક હું નહીં 0 આપો. હું કરતાં ઓછી, ચાલો કહે છે, 64 હું ++ દો. અને હવે મને આગળ અને પ્રિન્ટ જવા દો બહાર n ટકા હું, એન અલ્પવિરામ. અને પછી n-- આ હજુ પણ છે કાયમ માટે લઇ રહ્યું. ચાલો આ કરીએ. એ નહીં n વખત 2. અથવા આપણે ફેન્સી હોઈ શકે છે અને વખત બરાબર 2 નથી. પરંતુ માત્ર એ કહેવું પોતે બરાબર વખત 2. અન્ય શબ્દોમાં, આ કાર્યક્રમ ની નવી આવૃત્તિ, હું કાયમ રાહ નથી માંગતા 800,000 જેવા 4 અબજ છે. માત્ર આ બોલ વિચાર કરીએ. ખરેખર દરેક વખતે ડબલ એ કરીએ. જે, સ્મૃતિ, ડબલિંગ છે અલબત્ત, કર્યા વિપરીત. અને છેલ્લા અઠવાડિયે જ્યારે અમારી પાસે કંઈક ફરી, અને ફરીથી, અને ફરી, સુપર ફાસ્ટ, ડબલિંગ ચોક્કસ થશે સૌથી મોટી શક્ય 1 થી અમને વિચાર કિંમત છે કે અમે પૂર્ણાંક સાથે ગણતરી કરી શકે છે. તેથી આપણે બરાબર આ કરવા દો. અને અમે લાંબા પહેલાં આ પાછા આવો પડશે. પરંતુ આ, ફરીથી, જેમ છે સ્ક્રેચ માં પુનરાવર્તન બ્લોક. અને તમે લાંબા પહેલાં આ ઉપયોગ કરશો. આ માત્ર શૂન્ય માંથી ગણતરી અર્થ એ થાય છે, પરંતુ સમાન, 64 સુધી. અને આ દરેક ઇટરેશન પર લૂપ, માત્ર હું incrementing રાખો. તેથી હું ++ - અને આ સામાન્ય રચના વાક્ય પર 7 માત્ર એક સુપર સામાન્ય રીત છે ઓફ કેટલીક રેખાઓ પુનરાવર્તન કોડ છે, વખત અમુક સંખ્યા. કોડ ઓફ લીટીઓ? આ સર્પાકાર કૌંસ, તમે હવે મેળવાયેલ હોઈ શકે છે, અર્થ થાય છે, નીચે પ્રમાણે કરો. તે જેમ સ્ક્રેચ છે, જ્યારે તે પીળા બ્લોક્સ ધરાવે છે અને અન્ય રંગો છે કે જે પ્રકારની આલિંગવું અથવા અન્ય બ્લોકો આલિંગન આપે છે. કે શું તે સર્પાકાર છે કૌંસ અહીં કરી રહ્યા છે. તેથી જો હું મારા વાક્યરચના મળી તમે ડાબેથી સી અર્થ ગાજર પ્રતીક જોઈ શકો છો કેટલા વખત હું હતી આ સમસ્યા ઉકેલવા માટે પ્રયાસ કરે છે. તેથી આપણે તે એક છુટકારો મેળવવા દો એકસાથે, અને તે વિન્ડો બંધ કરો. અને અમે એક નવી ઉપયોગ કરશો. ઓવરફ્લો, કોઈ સ્લેશ બનાવો ઓવરફ્લો, દાખલ કરો, બધા અધિકાર, તે પ્રથમ ખરાબ લાગે છે. પરંતુ સમય પાછા સ્ક્રોલ દો, કારણ કે હું 64 વખત કર્યું હતું. અને પ્રથમ વખત નોટિસ, એ 1 છે. બીજી વખત, એ 2 છે, પછી 4, પછી 8, પછી 16. અને તે લાગે છે તેટલી જલદી હું અંદાજે 1 અબજ મેળવવા જો હું તેને ફરીથી બમણી છે, કે જે મને 2 અબજ આપવી જોઇએ. પરંતુ તે બહાર વળે છે, તે છે દંતૂશળ પર અધિકાર. અને તેથી તે ખરેખર ઓવરફ્લો 1 અબજ પૂર્ણાંક આશરે નકારાત્મક 2 અબજ, કારણ કે પૂર્ણાંક, નંબરો અમે વિપરીત છેલ્લા અઠવાડિયે એમ ધારી રહ્યા છીએ કરવામાં આવી હતી, બંને હકારાત્મક અને નકારાત્મક હોઈ શકે છે વાસ્તવિકતા અને કમ્પ્યુટર માં. અને તે જેથી ઓછામાં ઓછા એક બિટ્સ અસરકારક ચોરી છે. તેથી અમે ખરેખર માત્ર 31 બિટ્સ હોય છે, અથવા 2 અબજ શક્ય કિંમતો છે. પરંતુ હવે માટે, takeaway તદ્દન છે ખાલી ગમે આ નંબરો છે અને ગમે ગણિત છે, કંઇક ખરાબ છેવટે થાય છે, કારણ કે આખરે તમે પ્રયાસ કરી રહ્યા છે બિટ્સ એક ઘણી વાર અરસપરસ બદલવું. અને તમે અસરકારક રીતે તમામ જાઓ 1 ની કદાચ બધા 0, અથવા કદાચ માત્ર કેટલાક અન્ય પેટર્ન તે સ્પષ્ટ રીતે, સંદર્ભમાં પર આધાર રાખીને, નકારાત્મક નંબર તરીકે અર્થઘટન કરી શકાય છે. અને તેથી તે સૌથી વધુ હું લાગશે આ ચોક્કસ કાર્યક્રમ ગણતરી કરી શકે છે માત્ર અંદાજે 1 અબજ છે. પરંતુ અહીં આંશિક ઉકેલ છે. શું તમે જાણો છો? મને એક થી બદલીએ લાંબા લાંબા પૂર્ણાંક. અને મને આગળ અહીં જવા દો અને કહેવું હું હોય જાઉં છું એક સહી થયેલ નહિં લાંબા આ બદલવા માટે. અથવા, જો માતાનો જોવા દો, હું મારી જાતને ક્યારેય યાદ. ચાલો આગળ વધો અને ઓવરફ્લો બનાવવા દો. ના, તે નથી, LLD, આભાર. તેથી ક્યારેક રણકાર મદદરૂપ થઈ શકે છે. હું શું બંધારણમાં યાદ ન હતી specifier લાંબા લાંબા સમય માટે કરવામાં આવી હતી. પરંતુ, ખરેખર, રણકાર મને કહ્યું હતું. લીલા, સારી અમુક પ્રકારની છે હજુ પણ તમે એક ભૂલ કરી છે. તે અનુમાન લગાવવા છે કે હું LLD અર્થ થાય છે. તેથી, મને લેવા માટે તેને સલાહ દો લાંબા લાંબા દશાંશ નંબર છે, કે જે સાચવો. અને મને તે પુનઃ ચલાવો ડોટ દો, ઓવરફ્લો સ્લેશ, દાખલ કરો. અને હવે શું ઠંડી છે આ છે. જો હું સમય પર પાછા સ્ક્રોલ, અમે હજુ પણ શરૂ એ જ સ્થળ પર ગણાય 1, 2, 4, 8, 16. નોટિસ, અમે વિચાર બધા માર્ગ પહેરવેશ 1 અબજ. પરંતુ તે પછી આપણે સુરક્ષિત રીતે 2 અબજ મળે છે. પછી અમે 4 અબજ મેળવવા માટે, પછી 8 અબજ, 17 અબજ. અને અમે ઊંચી જાય છે, અને ઉચ્ચ અને ઉચ્ચ. આખરે, આ, પણ, આરામ. આખરે, લાંબા લાંબા સાથે, જે 64-બીટ કિંમત નથી, એક 32-બીટ કિંમત તમે ગણતરી ખૂબ ઊંચા, તમે આસપાસ 0 લપેટી. અને આ કિસ્સામાં, અમે કરવા માટે થાય છે નકારાત્મક નંબર સાથે અંત. તેથી આ એક સમસ્યા છે. અને તે તારણ છે કે આ સમસ્યા છે કે જે બધી Arcane નથી. તેમ છતાં હું ઇરાદાપૂર્વક કર્યું આ ભૂલો સાથે પ્રેરિત, તે તારણ અમે તે પ્રકારની તમામ જુઓ અમને, અથવા અમારી ઓછામાં ઓછા કેટલાક આસપાસ નથી. જેથી Lego સ્ટાર વોર્સ, જો તમે ક્યારેય રમત રમ્યો છું, તે બહાર વળે તમે આસપાસ જઈ શકે છે LEGO વિશ્વમાં વસ્તુઓ ભંગ, અને સિક્કા એકઠા, અનિવાર્યપણે. અને જો તમે જેમની સાથે રમ્યો છું આ રમત ખૂબ સમય રીતે, આ અનામી વ્યક્તિગત તરીકે અહીં કર્યું, કુલ સંખ્યા સિક્કા કે તમે એકત્રિત કરી શકે તે જણાય છે, 4 અબજ છે. હવે, સાથે તે ખરેખર ગોળાકાર છે. તેથી LEGO કરવાનો પ્રયાસ કરવામાં આવ્યો વસ્તુઓ વપરાશકર્તા મૈત્રીપૂર્ણ રાખવા. તેઓએ તેને બરાબર માટે શું ન હતી 2 32 પાવર, છેલ્લા અઠવાડિયે દીઠ. પરંતુ 4 અબજ એક કારણ છે. એવું લાગે છે, આ જાણકારી પર આધારિત છે, કે Lego, અને કંપની કે આ વાસ્તવિક સોફ્ટવેર નક્કી કર્યું કે સિક્કા ની મહત્તમ સંખ્યા વપરાશકર્તા એકઠા કરી શકો છો છે, ખરેખર, 4 અબજ તેઓ તેમના કોડ પસંદ કર્યું કારણ કે લાંબા લાંબા વાપરવા માટે, દેખીતી રીતે, પરંતુ માત્ર પૂર્ણાંક, એક સહી થયેલ નહિં પૂર્ણાંક, માત્ર એક હકારાત્મક પૂર્ણાંક, જેની મેક્સ કિંમત છે કે જે આશરે છે. ઠીક છે, અહીં અન્ય રમૂજી એક છે. ગેમ સિવિલાઇઝેશન તેથી, જે તમે કેટલાક પરિચિત હોઈ શકે છે, સાથે તે વર્ષ પહેલાં ત્યાં બહાર વળે આ રમત છે જેમાં એક ભૂલ હતી જો તમે ભૂમિકા ભજવી રમત ગાંધીના તેને બદલે ખૂબ જ શાંતિવાદી છે, તેના બદલે ઉત્સાહી હતી, અતિ આક્રમક, કેટલાક સંજોગોમાં. ખાસ કરીને, માર્ગ કે સંસ્કૃતિ કામ કરે છે કે જો તમે, ખેલાડી, લોકશાહી અપનાવી તમારા આક્રમકતા સ્કોર નહીં બે, જેથી ઓછા દ્વારા decremented ઓછા, અને પછી ઓછા. જેથી તમે 2 બાદ તમારી વાસ્તવિક વારો. કમનસીબે, તમારા વારો છે જો શરૂઆતમાં 1, અને તમે 2 બાદબાકી લોકશાહી અપનાવવા પછી ગાંધી અહીં કદાચ કર્યું છે કારણ કે તે ખૂબ જ passive-- હતી આક્રમકતા ના સ્કેલ પર 1. પરંતુ જો તે લોકશાહી અપનાવે છે, પછી તેમણે 1 થી નકારાત્મક 1 જાય છે. કમનસીબે, તેઓ હતા સહી થયેલ નહિં નંબરો મદદથી, જેનો અર્થ થાય છે કે તેઓ પણ નકારાત્મક સારવાર નંબરો છતાં તરીકે તેઓ હકારાત્મક હતી. અને તે તારણ છે કે નકારાત્મક 1 હકારાત્મક સમકક્ષ લાક્ષણિક કમ્પ્યુટર કાર્યક્રમો, 255 છે. તેથી જો ગાંધી અપનાવે લોકશાહી છે, અને તેથી છે તેના આક્રમકતા સ્કોર ઘટાડો થયો છે, તે ખરેખર 255 આસપાસ ચાલે છે અને તેમને સૌથી બનાવે છે રમત આક્રમક પાત્ર. તેથી જો તમે આ પર Google શકો છો. અને તે હતી, ખરેખર, એક આકસ્મિક પ્રોગ્રામિંગ ભૂલ, પરંતુ તે તદ્દન દાખલ છે આસ્થા ત્યારથી. તે બધા આનંદ અને સુંદર છે. વધુ ડર જ્યારે વાસ્તવિક છે વાસ્તવિક દુનિયામાં ઉપકરણો, અને રમતો, આ જ ભૂલો છે. હકીકતમાં, માત્ર એક વર્ષ પહેલા એક લેખ આવ્યો બોઇંગ 787 ડ્રીમ લાઇનર વિશે. અને પ્રથમ લેખ નજરમાં થોડી Arcane વાંચે છે. પરંતુ તે જણાવ્યું હતું કે આ એક સોફ્ટવેર માતાનો બોઇંગ માં નબળાઈ નવા 787 ડ્રીમ લાઇનર જેટ ધરાવે છે સંભવિત પાઇલોટ્સ કારણ બની નિયંત્રણ ગુમાવી વિમાનો, કદાચ મધ્ય ફ્લાઇટ માં, એફએએ અધિકારીઓ તાજેતરમાં જ ચેતવણી આપી એરલાઇન્સ. તે નિર્ણય હતો એક મોડેલ 787 વિમાન કે સંચાલિત કરવામાં આવી છે સતત 248 દિવસ બધા વૈકલ્પિક વર્તમાન ગુમાવી શકો છો, એસી, વિદ્યુત જનરેટર કારણે શક્તિ નિયંત્રણ એકમો, GCUs, વારાફરતી જવા સુરક્ષિત મોડ નિષ્ફળ જાય છે. તે મને હારી પ્રકારની છે. પરંતુ મેમો જણાવ્યું હતું કે, ઠીક છે, હવે હું મળી, શરત સોફ્ટવેર કારણે કરવામાં આવી હતી આંતરિક સામે જનરેટર નિયંત્રણ એકમો કે પછી ઓવરફ્લો થશે સતત શક્તિ 248 દિવસ. અમે આ અદા કરવામાં આવે છે નુકશાન અટકાવવા માટે નોટિસ તમામ એસી વિદ્યુત શક્તિ છે, જે પરિણમી શકે છે વિમાન નિયંત્રણ નુકસાન. તેથી, શાબ્દિક, ત્યાં અમુક પૂર્ણાંક છે, અથવા અમુક સમકક્ષ માહિતી પ્રકાર, સોફ્ટવેર ઉપયોગ કરવામાં એક વાસ્તવિક વિમાન કે જો તમે તમારા વિમાન રાખવા પર્યાપ્ત લાંબા સમય સુધી, કે જે દેખીતી રીતે પર કેસ હોઈ શકે છે, તો તમે માત્ર ચલાવી રહ્યા છો તેમને સતત અને ક્યારેય માઉસના તમારા વિમાન, તે લાગે છે, અથવા ભાડા તેની બેટરી મૃત્યુ પામે છે, આખરે ગણીશું, અને, અને, અને, અને, અને. અને, કુદરત દ્વારા, મેમરી મર્યાદિત રકમ , ઓવરફ્લો થશે પાછા રોલિંગ શૂન્ય અથવા કેટલાક નકારાત્મક કિંમત, જે એક બાજુ અસર છે frighteningly વાસ્તવિક વાસ્તવિકતા વિમાન જરૂર પડી શકે છે કે રીબુટ કરવાની, અસરકારક અથવા, ખરાબ પડી શકે છે, તે ઉડે છે. તેથી મુદ્દાઓ આ પ્રકારના અમારી સાથે હજુ પણ છે, even-- આ 2015 લેખ હતો, બધા વધુ ભયાનક તમે જરૂરી નથી ત્યારે , સમજવા ગમે છે, અથવા અપેક્ષા ભૂલો તે પ્રકારના. તેથી તે ત્યાં એક અન્ય છે બહાર વળે માહિતી પ્રતિનિધિત્વ વિશે ખરાબ વસ્તુ. તે તારણ છે કે પણ ફ્લોટ્સ છે પ્રકારની અપૂર્ણ છે, કારણ કે ફ્લોટ્સ, પણ, હું દરખાસ્ત કરવામાં આવે છે 32 બિટ્સ, અથવા કદાચ 64 તમે ડબલ વાપરો. પરંતુ તે હજુ પણ મર્યાદિત છે. અને કેચ છે કે તમે કરી શકો છો નંબરો અનંત નંબર મૂકી આ બાદ ચિહ્ન પછી, ત્યાં કોઈ રીતે તમે છે બધા શક્ય પ્રતિનિધિત્વ કરી શકે છે નંબરો કે અમે શીખવવામાં આવી હતી ગ્રેડ શાળા વિશ્વમાં અસ્તિત્વ ધરાવે છે. કોમ્પ્યુટર, અનિવાર્યપણે, છે તે નંબરો ઉપગણ પસંદ ચોક્કસ પ્રતિનિધિત્વ કરે છે. હવે, કમ્પ્યુટર કરી શકો છો રાઉન્ડ કદાચ થોડો, અને આશરે સ્ટોર પર તમે પરવાનગી આપી શકે છે કોઈપણ નંબર તમે કદાચ માંગો છો શકે છે. પરંતુ માત્ર તર્ક, તમે જો બીટ્સ એક મર્યાદિત સંખ્યામાં હોય છે, તમે માત્ર તેમને અરસપરસ બદલવું કરી શકો છો ઘણા મર્યાદિત રીતે. તેથી તમે કદાચ નથી કરી શકો છો મર્યાદિત સંખ્યામાં ઉપયોગ બિટ્સ ક્રમચય છે, zeros અને શૈલીઓનો પેટર્ન, એક અનંત પ્રતિનિધિત્વ નંબરો નંબર, કે જે કમ્પ્યુટર્સ કદાચ સૂચવે ખૂબ જ સારી રીતે અમને બોલતી ક્યારેક હોય છે. હકીકતમાં, આ કરવા દો. મને CS50 IDE માં પાછા જવા દો. મને આગળ જવા દો અને થોડી કાર્યક્રમ બનાવવા તે બતાવવા માટે અશુદ્ધિ કહેવાય છે, એન્જીનિયરિંગ, છે ખરેખર, અશુદ્ધ. અને મને આગળ જાઓ અને સાથે શરૂ કરીએ પહેલાં તે કોડ કેટલાક અને હવે માત્ર નીચેના કરવું. મને આગળ વધો અને printf, ટકા ગણીએ એફ, બેકસ્લેશ n એ, 1 10 દ્વારા વિ. બીજા શબ્દોમાં કહીએ તો, ચાલો ઊંડા માં ડાઇવ દો 1/10, જેમ 1 અને 10 ભાગ્યા. ચોક્કસ, કમ્પ્યુટર 1/10 પ્રતિનિધિત્વ કરી શકે છે. તેથી આપણે આગળ વધીશું અને અશુદ્ધિ બનાવીએ. જોઈએ. ફોર્મેટ ડબલ લખો સ્પષ્ટ કરે છે. પરંતુ દલીલ પ્રકાર પૂર્ણાંક છે. શું થઈ રહ્યું છે? ઓહ, રસપ્રદ, તેથી તે છે પાઠ પહેલાં શીખ્યા. હું કહી રહ્યો છું, અરે, કમ્પ્યુટર શો મને ટકા એફ સાથે એક ફ્લોટ. પરંતુ હું તે 2 ints આપી રહ્યો છું. તેથી તે બહાર વળે છે, હું ઠીક કરી શકે છે રીતે એક દંપતી આ. હું માત્ર 1.0 માં એક ચાલુ કરી શકે છે, અને 10 10.0 માં, કે જે છે, ખરેખર, રૂપાંતર અસર છે floats-- તેમને હજુ પણ આશા છે એ જ નંબર. અથવા તે કરે છે ત્યાં બહાર કંઈક અમે ફરીથી લાંબા પહેલાં જોશો. તમે જે નંબરો ભૂમિકા કરી શકે છે. તમે આ parenthetical મદદથી કરી શકો છો અભિવ્યક્તિ, તમે કહી શકો છો, અરે, કોમ્પ્યુટર, આ લેવા 10, જે મને ખબર પૂર્ણાંક છે. પરંતુ તે સારવાર, કૃપા કરીને, જોકે તે ફ્લોટ છે. પરંતુ આ બિનજરૂરી જટિલ લાગે છે. આજે અમારા હેતુઓ માટે, માત્ર શાબ્દિક દો તેમને બિંદુ કિંમતો ફ્લોટિંગ બનાવવા એક દશાંશ બિંદુ, આ જેમ સાથે. મને આગળ જવા દો અને પુનઃ ચલાવો, બનાવવા અશુદ્ધિ, સારું, કોઈ સ્લેશ અશુદ્ધિ, દાખલ કરો. ઠીક છે, અમે સારા શોધી રહ્યાં છે. 1, 10 ભાગ્યા પ્રમાણે મારી મેક અહીં, ખરેખર, 0.100000 છે. હવે, હું ગ્રેડ શાળા માં ત્યાં શીખવવામાં આવ્યું હતું 0 એક અનંત નંબર પ્રયત્ન કરીશું. તેથી આપણે ઓછામાં ઓછા કરવાનો પ્રયાસ કરો તે કેટલાક જોવા માટે. તે તારણ છે કે printf થોડું છે પારખુ હજુ કરતાં અમે ઉપયોગ કરી રહ્યો છું. તે તારણ આપે છે તમે સ્પષ્ટ કરવા માટે નથી માત્ર ટકા એફ, અથવા માત્ર ટકા હું. તમે ખરેખર સ્પષ્ટ કરી શકો છો કેટલાક નિયંત્રણ અહીં વિકલ્પો. ખાસ કરીને, હું જાઉં છું કહે છે, અરે, printf, ખરેખર મને 10 એ પોઇન્ટ દર્શાવે છે. તેથી તે થોડો વિચિત્ર લાગે છે. પણ તમે કહેશો ટકા, કોઈ, કેવી રીતે ઘણા નંબરો તમે પછી જોવા માંગો છો આ બાદ ચિહ્ન, અને પછી એફ ફ્લેટ, માત્ર કારણ કે તે છે શું દસ્તાવેજીકરણ કહે છે. મને આગળ વધો અને તે સંગ્રહ કરીએ. અને ખૂબ નોટિસ, હું મેળવવામાં છું વસ્તુઓ ફરીથી લખવાની થાકી. તેથી હું ફક્ત સુયોજિત છું અને નીચે અહીં મારા કીઓ પર તીર. અને હું હિટ રાખવા હોય તો, તમે બધા આદેશો જોઈ શકો છો કે હું બનાવી, અથવા ખોટી રીતે કરી હતી. અને હવે હું આગળ જવા માટે જઇ રહ્યો છું અને વાસ્તવમાં તે ઉપયોગ નથી, દેખીતી રીતે. બનાવો અશુદ્ધિ, કોઈ જેથી imprecision-- સ્લેશ હું શું શીખવવામાં આવતું હતું ગ્રેડ શાળા બહાર ચકાસે છે. પણ જો હું તેને 10 એ છાપો તે મૂકે છે, ખરેખર, 0,10000 છે. પરંતુ તમે શું જાણો છો? માતાનો થોડી લોભી વિચાર કરીએ. ધારો કે, જેમ દો, મને 55 બતાવવા એ પછી નિર્દેશ કરે છે. ચાલો ખરેખર આ લેવા સ્પિન માટે બહાર કાર્યક્રમ. મને સાથે રિમેક દો અશુદ્ધિ, કોઈ સ્લેશ, અશુદ્ધિ. અને અહીં અમે જાઓ. તમારા બાળપણ એક જૂઠાણું હતું. દેખીતી રીતે, 1 10 દ્વારા વિ ખરેખર છે 0.100000000000000005551115123-- શું ચાલી રહ્યું છે? વેલ, તે તારણ છે, જો તમે પ્રકારની દૂરના અંતર્ગત બહાર જોવા આ રજૂઆત સંખ્યા છે, તે ખરેખર નથી બરાબર 1/10, અથવા 0.1 અને zeros એક અનંત નંબર. હવે, કે શા માટે છે? વેલ, છતાં પણ આ સરળ છે અમને મનુષ્યો માટે નંબર 1, 10 ભાગ્યા તે હજુ પણ અનંત અનેક એક છે નંબરો અમે લાગે શકે છે. પરંતુ કમ્પ્યૂટર માત્ર પ્રતિનિધિત્વ કરી શકે છે finitely ઘણા નંબરો. અને તેથી, અસરકારક રીતે, શું કમ્પ્યુટર દર્શાવે છે અમને તેના સૌથી નજીક છે સંખ્યા અડસટ્ટો અમે માનીએ છીએ કે 1/10 છે કરવા માંગો છો, અથવા ખરેખર 0,10000 નિરવધિ. તેના બદલે, છતાં, આ છે તરીકે તે મેળવી શકો છો બંધ કરો. અને, ખરેખર, જો તમે જુઓ હૂડ નીચે, અમે અહીં જોઈ દ્વારા છે, કારણ કે એ પછી 55 અંકો અમે ખરેખર છે કે વાસ્તવિકતા જુઓ. હવે એક કોરે, તો તમે કરેલા ક્યારેય movie-- જોઈ તમે મોટા ભાગના કદાચ haven't-- પરંતુ સુપરમેન 3 કેટલાક વર્ષો પહેલાં, રિચાર્ડ પ્રાયર અનિવાર્યપણે આ લિવરેજ તેમની કંપની વાસ્તવિકતા ઘણો ચોરી અપૂર્ણાંક અને પેનિઝ અપૂર્ણાંક, કારણ કે company-- હું યાદ, તે ડુ જ્યારે અનિવાર્યપણે હતી કરવામાં આવી છે દૂર કંઈપણ ઘા ફિટ ન હતી કે સેન્ટના કલ્પના માં. પરંતુ તમે ઉમેરવા જો આ બધા નાના, નાના, નાના ફરી નંબરો, અને ફરી, અને ફરીથી, તમે તરીકે કરી શકો છો, તેના કેસ, મની સારી રકમ કરી. એ જ વિચાર દ્વારા બોલ ripped હતી તાજેતરમાં થયેલા એક વધુ, પરંતુ હજુ પણ હવે જૂની ફિલ્મ, ઓફિસ જગ્યા કહેવાય છે, જ્યાં તે ફિલ્મમાં ગાય્ઝ, , એ જ વસ્તુ હતી તે ખરાબ અપ સંપૂર્ણપણે ખૂબ માર્ગ સાથે અંત તેમના બેંક ખાતામાં નાણાં. તે બધા ખૂબ જ શંકાસ્પદ હતું. પરંતુ દિવસ ઓવરને અંતે, અશુદ્ધિ બધા અમને આસપાસ છે. અને તે પણ હોઇ શકે છે, કેસ frighteningly. તે તારણ છે કે સુપરમેન 3 અને ઓફિસ સ્પેસ સિવાય, ત્યાં કેટલાક ખૂબ વાસ્તવિક બની શકે છે વિશ્વમાં વિભાગીકરણ અશુદ્ધ વાસ્તવિકતા ની માહિતી પ્રતિનિધિત્વ તે પણ આપણે મનુષ્યો માટે આ દિવસે જરૂરી નથી તેમજ આપણે જોઇએ સમજે છે, અથવા વારંવાર આપણે જોઇએ યાદ કરે છે. અને, ખરેખર, નીચેની ક્લિપ છે કેટલાક ખૂબ વાસ્તવિક વિશ્વમાં પર એક નજર થી શું તમે થાય વિભાગીકરણ અશુદ્ધિ કદર નથી કે નંબરો પ્રતિનિધિત્વ થઇ શકે છે. [વિડિઓ પ્લેબેક] -Computers, અમે બધા સ્વીકારી આવે છે ઘણી વખત નિરાશાજનક સમસ્યાઓ them-- ભૂલો સાથે જાઓ, વાયરસ, અને સોફ્ટવેર અવરોધો, નાના ભાવ ચૂકવવા માટે અનુકૂળતા માટે. પરંતુ હાઇ ટેક અને ઉચ્ચ ઝડપ લશ્કરી અને અવકાશ કાર્યક્રમ કાર્યક્રમો, નાના સમસ્યા કરી શકો છો આપત્તિ માં વધી શકાય. જૂન 4, 1996 ના રોજ, વૈજ્ઞાનિકો તૈયાર એક માનવરહિત Ariane 5 રોકેટ લોન્ચ કરવા માટે. તે વૈજ્ઞાનિક વહન કરવામાં આવી હતી ઉપગ્રહો રચાયેલ ચોક્કસપણે કેવી રીતે સ્થાપિત કરવા માટે પૃથ્વીના ચુંબકીય ક્ષેત્ર સંપર્ક કરે સૌર પવન સાથે. રોકેટ માટે બનાવવામાં આવ્યું હતું યુરોપિયન સ્પેસ એજન્સી, અને તેના સુવિધા પરથી ઉઠાવી ફ્રેન્ચ ગુઆના કિનારે. 37 સેકન્ડ મુ- ફ્લાઇટ, તેઓ પ્રથમ જણાયું કંઈક ખોટું થવાનું હતું. nozzles માં swiveling હત એક રીતે તેઓ ખરેખર ન જોઈએ. ફ્લાઇટ માં 40 સેકન્ડ આસપાસ, સ્પષ્ટ રીતે, વાહન મુશ્કેલી હતી. અને તે જ્યારે તેઓ કરવામાં નિર્ણય નાશ. શ્રેણી સલામતી અધિકારી સાથે જબરદસ્ત શક્તિ, બટન દબાવવામાં, , પહેલાં રોકેટ અપ blew તે કરી શકે છે જાહેર સલામતી માટે ખતરો બની જાય છે. -આ મેઇડન હતી Ariane 5 વોયેજ. અને તેના નાશ લીધો એક પ્રવાહ કારણે મૂકો આ રોકેટ સોફ્ટવેરમાં જડિત. Ariane પર -ધ સમસ્યા હતી ત્યાં એક નંબર હતી કે વ્યક્ત 64 બિટ્સ જરૂરી છે. અને તેઓ ઇચ્છતું 16-bit નંબર પર તેને. તેઓ માનવામાં આવે છે કે નંબર ક્યારેય ચાલુ કરવામાં આવી હતી , ખૂબ મોટી હોઈ તે મોટા ભાગના એક 64-બીટ નંબર એ શુન્ય હતા. તેઓ ખોટું હતા. એક -આ અક્ષમતા સોફ્ટવેર કાર્યક્રમ સ્વીકારી નંબર પ્રકારની દ્વારા પેદા અન્ય નિષ્ફળતા રુટ હતો. સોફ્ટવેર વિકાસ બની હતી નવી ટેકનોલોજી ખૂબ જ ખર્ચાળ ભાગ છે. Ariane રોકેટ ખૂબ જ કરવામાં આવી છે સફળ, તેથી સોફ્ટવેર ખૂબ પછી તે પણ હતી Ariane 5 માં વપરાય છે. -ધ મૂળભૂત સમસ્યા એ છે કે Ariane હતી 5, ઝડપી હતી ઝડપી વેગ. અને સોફ્ટવેર ન હતી તે માટે જવાબદાર હતો. રોકેટ -આ વિનાશ એક વિશાળ નાણાકીય આપત્તિ હતી, બધા એક મિનિટ સોફ્ટવેર ભૂલ કારણે. પરંતુ આ પ્રથમ ન હતી સમય માહિતી રૂપાંતર સમસ્યાઓ આધુનિક ઘડવામાં હતી રોકેટ ટેકનોલોજી. ઇન 1991, શરૂઆત સાથે પ્રથમ ગલ્ફ વોર, પેટ્રિઅટ મિસાઇલ એક જ પ્રકારની અનુભવ નંબર રૂપાંતર સમસ્યા. અને પરિણામે, 28 લોકો, 28 અમેરિકન સૈનિકો, માર્યા ગયા હતા, અને લગભગ 100 અન્ય ઘાયલ થયા, જ્યારે પેટ્રિઅટ રહેવા આવી હતી આવનારા Scuds સામે રક્ષણ કરવા માટે, એક મિસાઇલ આગ નિષ્ફળ. -જ્યારે ઇરાક કુવૈત, અને અમેરિકા પર આક્રમણ કર્યું 1991 ના પ્રારંભમાં ડિઝર્ટ સ્ટ્રોમ લોન્ચ, પેટ્રિઅટ મિસાઈલ બેટરી તૈનાત કરવામાં આવ્યા હતા સાઉદી અરેબિયા અને ઇઝરાયેલ રક્ષણ કરવા માટે ઇરાકી સ્કડ મિસાઈલ હુમલા. પેટ્રિઅટ એક યુએસ મધ્યમ શ્રેણી છે એર સિસ્ટમ સપાટી, ઉત્પાદન રેથિયોન કંપની દ્વારા. પેટ્રિઅટ વિક્ષેપક -આ કદ પોતાને વિશે આશરે 20 ફૂટ લાંબી છે. અને તે આશરે 2,000 પાઉન્ડ તેનું વજન. અને તે વિશે એક શસ્ત્રો વહન મને લાગે છે કે તે લગભગ 150 પાઉન્ડ છે. અને શસ્ત્રો પોતે છે એક ઉચ્ચ વિસ્ફોટક, જે તે આસપાસ ટુકડાઓ છે. શસ્ત્રો ની કેસીંગ છે buckshot જેવા કાર્ય માટે રચાયેલ છે. -ધ મિસાઇલો કરવામાં આવે છે ચાર કન્ટેનર દીઠ, અને અર્ધ ટ્રેલર દ્વારા પરિવહન થાય છે. -ધ પેટ્રિઅટ મિસાઈલ વિરોધી સિસ્ટમ ઓછામાં ઓછા 20 વર્ષ હવે પાછા જાય છે. તે અસલમાં કરવામાં આવી હતી હવાઈ ​​સંરક્ષણ મિસાઇલ તરીકે નીચે દુશ્મન એરોપ્લેન શૂટ. પ્રથમ ગલ્ફ વોર, જ્યારે કે યુદ્ધ સાથે આવ્યા, આર્મી માટે તેનો ઉપયોગ કરવા માગે છે નીચે સ્કડ મિસાઈલો નથી એરોપ્લેન શૂટ. ઇરાકી એર ફોર્સ હતી સમસ્યા ખૂબ જ નથી. પરંતુ આર્મી Scuds વિશે ચિંતા હતી. અને તેથી તેઓ કરવાનો પ્રયાસ કર્યો પેટ્રિઅટ સુધારો. એક દુશ્મન -Intercepting મિસાઈલ મેક 5 મુસાફરી પૂરતી પડકારવા કરી રહ્યા હતા. પરંતુ જ્યારે પેટ્રિઅટ સેવા માં આવ્યા હતા, આર્મી પરિચિત ન હતી કે ઇરાકી ફેરફાર કરવામાં તેમના સ્કડ મિસાઈલો હિટ લગભગ અશક્ય. -શું થયું સ્કડ મિસાઈલો છે કે આવતા અસ્થિર હતી. તેઓ wobbling હતા. આ માટે કારણ હતું ઈરાકીઓએ માટે, 600 કિલોમીટર વિચાર 300 કિલોમીટર બહાર રેન્જ મિસાઇલ, વજન લીધો સામે શસ્ત્રો બહાર. તેઓ શસ્ત્રો હળવા કરી હતી. તેથી હવે પેટ્રિઅટ છે સ્કડ અંતે આવે છે પ્રયાસ કરે છે. અને મોટા ભાગના વખતે, સમય જબરજસ્ત બહુમતી, તે માત્ર સ્કડ દ્વારા ઉડાન કરશે. એકવાર પેટ્રિઅટ સિસ્ટમ ઓપરેટરો સમજાયું પેટ્રિઅટ તેના લક્ષ્ય ચૂકી છે, તેઓ પેટ્રિઅટ માતાનો શસ્ત્રો ફાટ્યો જો શક્ય હોય તો જાનહાનિ ટાળવા માટે જમીન પર પડી મંજૂરી આપવામાં આવી હતી. મોટા ભાગના લોકો શું જોયું એટલે હતી, આકાશમાં તે મોટા અગનગોળા, અને ગેરસમજ સ્કડ અણુશસ્ત્રોનો રોકનાર. રાત્રે -Although આકાશ, દેશભક્તો દેખાયા સફળતાપૂર્વક હોઈ Scuds નાશ Dhahran અંતે, કોઈ ભૂલ હોઈ શકે છે તેની કામગીરી વિશે. ત્યાં, પેટ્રિઅટ માતાનો રડાર સિસ્ટમ ઇનકમિંગ સ્કડ ટ્રેક ગુમાવી હતી, અને કારણે ક્યારેય શરૂ સોફ્ટવેર પ્રવાહ. તે ઇઝરાયેલીઓ જે પ્રથમ શોધ હતી જે લાંબા સમય સિસ્ટમ પર હતો, ગ્રેટર સમય ફરક હતી, અને ઘડિયાળ જડિત કારણે સિસ્ટમ કમ્પ્યુટર. -About બે અઠવાડિયા પહેલાં Dhahran માં કરૂણાંતિકા, ઇઝરાયેલીઓ અહેવાલ સંરક્ષણ વિભાગ સિસ્ટમ સમય હારી હતી. લગભગ આઠ કલાક કે ચલાવ્યા પછી, તેઓ સિસ્ટમ છે કે જે નોંધ્યું નોંધનીય ઓછા સચોટ બની હતી. સંરક્ષણ વિભાગ દ્વારા પ્રતિક્રિયા પેટ્રિઅટ બેટરી બધા કહેવાની સિસ્ટમો છોડી નથી એક લાંબા સમય માટે. તેમણે જણાવ્યું હતું કે શું લાંબા સમય ક્યારેય was-- આઠ કલાક, 10 કલાક, 1000 કલાક. કોઇએ જાણતા હતા. -ધ પેટ્રિઅટ બેટરી બેરેક્સ ખાતે કાર્યરત Dhahran અને તેના અપૂર્ણ આંતરિક પર ઘડિયાળ 100 કલાક પર કરવામાં આવી હતી ફેબ્રુઆરી 25 ના રાત્રે. -તે ચોકસાઈ માટે સમય ટ્રેક એક સેકન્ડના દસમા વિશે. હવે, બીજી એક દસમા એક રસપ્રદ નંબર છે, કારણ કે તે વ્યક્ત કરી શકાતી નથી દ્વિસંગી બરાબર છે, કે જે તે બરાબર વ્યક્ત કરી શકાતી નથી એનો અર્થ એ થાય કોઈપણ આધુનિક ડિજિટલ કમ્પ્યુટર માં. તે માનવું મુશ્કેલ છે. પરંતુ એક ઉદાહરણ તરીકે આ વાપરો. નંબર એક તૃતીય લઈએ. એક ત્રીજા ન હોઈ શકે બરાબર એ વ્યક્ત. એક તૃતીય 0,333 છે અનંત માટે ચાલુ. સાથે તે કરવા માટે કોઈ રીત હોય છે દશાંશ માં પૂર્ણ ચોકસાઈ. તે બરાબર સમસ્યા પ્રકારની છે કે પેટ્રિઅટ થયું. લાંબા સમય સુધી સિસ્ટમ ચાલી હતી, ખરાબ સમય ભૂલ બની હતી. ઓપરેશન 100 કલાક -પછી, સમય ભૂલ માત્ર એક ત્રીજા હતી બીજા. પરંતુ લક્ષ્ય દ્રષ્ટિએ મિસાઈલ મેક 5 મુસાફરી, તે ટ્રેકિંગ પરિણામે 600 મીટર ભૂલ. તે ઘાતક ભૂલ હશે શું પર સૈનિકો માટે થયું છે સ્કડ લોન્ચ કરવામાં આવી હતી વહેલી ચેતવણી ઉપગ્રહો દ્વારા શોધાયેલ અને તેઓ જાણતા હતા કે સ્કડ હતી તેમના સામાન્ય દિશામાં આવતા. તેઓ ખબર ન હતી, જ્યાં તે આવી હતી. -તે હવે રડાર અપ હતો પેટ્રિઅટ સિસ્ટમ ઘટક બચાવ Dhahran સ્થિત અને રાખવા માટે આવતા દુશ્મન મિસાઇલ ટ્રૅક. -ધ રડાર ખૂબ સ્માર્ટ હતી. તે ખરેખર ટ્રેક કરશે સ્કડ સ્થિતિ, અને પછી આગાહી જ્યાં તે કદાચ આગામી સમય રડાર મોકલવામાં આવશે એક બહાર પલ્સ. તે એક શ્રેણી દ્વાર તરીકે ઓળખાતું હતું. -Then, પેટ્રિઅટ એકવાર નક્કી પૂરતો સમય છે પાછા જાઓ અને આગામી ચેક કરવા પસાર આ શોધાયેલ પદાર્થ સ્થાન, તે પાછા જાય છે. તેથી જ્યારે તે ખોટું પાછા ગયા સ્થળ, તે પછી કોઈ પદાર્થ જુએ છે. અને તે નક્કી હતી કે કોઈ પદાર્થ, તે ખોટા શોધ હતો, અને ટ્રેક ડ્રોપ્સ. -ધ આવનારા સ્કડ અદ્રશ્ય રડાર સ્ક્રીન માંથી. અને સેકન્ડ પછી, તે બરાક માં સ્લેમ્ડ. સ્કડ 28 માર્યા ગયા, અને છેલ્લે એક પ્રથમ ગલ્ફ વોર દરમિયાન બરતરફ. દુઃખદ, સુધારાયેલ સોફ્ટવેર પછીના દિવસે આવ્યા Dhahran. સોફ્ટવેર પ્રવાહ હતી આવી સુધારાઈ ગયેલ છે, બંધ મુશ્કેલીમાં એક પ્રકરણ પેટ્રિઅટ મિસાઈલ ઇતિહાસ. [વિડિઓ પ્લેબેક] ડેવિડ જે MALAN: તેથી આ બધા માટે છે કહે ઓવરફ્લો આ મુદ્દાઓ કે અને અશુદ્ધિ બધા ખૂબ વાસ્તવિક છે. તેથી અમે અહીં તે કેવી રીતે મળી હતી? અમે માત્ર printf વિશે વાત કરવાનું શરૂ કર્યું. ફરીથી, આ કાર્ય કે સ્ક્રીન પર કંઈક છાપે છે, અને અમે ત્યાર બાદ રજૂ થોડા અન્ય કાર્યો કહેવાતા CS50 પુસ્તકાલય માંથી. અને અમે ચાલુ રાખીશું કારણે સમય માં આ જુઓ. અને અમે, ખાસ કરીને, શબ્દમાળા મેળવવા માટે, ઉપયોગ અને પૂર્ણાંક વિચાર, અને હવે પણ ફ્લોટ વિચાર, અને હજુ સુધી અન્ય હજુ પણ અમે સામનો કરશે અને જાતને લાંબા પહેલાં ઉપયોગ કરે છે. પરંતુ પ્રસંગ પર, છે અમે પહેલાથી જ એક જરૂર જોવા મળે શું તે કાર્યો હાથ પાછા સંગ્રહવા માટે? તેઓ અમને શબ્દમાળા પાછા હાથ, અથવા પૂર્ણાંક, અથવા ફ્લોટ. અને ક્યારેક આપણે મૂકી કરવાની જરૂર છે શબ્દમાળા, અથવા પૂર્ણાંક, અથવા ફ્લોટ, ક્યાંક. અને તે વસ્તુઓ સંગ્રહવા માટે, માત્ર યાદ સ્ક્રેચ જેમ, અમે ચલો છે. પરંતુ સ્ક્રેચ જેમ નહિં પણ, સી અમે વાસ્તવિક પ્રકારના હોય છે variables-- માહિતી પ્રકારો, વધુ generally-- તેમની વચ્ચે, એક શબ્દમાળા પૂર્ણાંક, એક ફ્લોટ, અને આ અન્ય હજુ પણ. અને તેથી જ્યારે અમે સી ચલો જાહેર, અમે અમારી માહિતી પ્રકારો જાહેર કરવા પડશે. આ કંઈક નથી અમે પડશે સત્ર પછી શું કરવું છે કારણ કે અમે અન્ય ભાષાઓમાં સંક્રમણ. પરંતુ હવે માટે, અમે જરૂર નથી અગાઉથી એક પ્રાયોરી માટે, કમ્પ્યુટર કયા પ્રકારનું છે તે સમજાવવા ચલ અમે તે અમને આપવા માંગો છો. હવે દરમિયાન, પ્રિન્ટ ડેટા પ્રકારો તે પ્રકારના, અમે કહી printf માટે શું અપેક્ષા હોય છે. અને અમે શબ્દમાળાઓ માટે ટકા ઓ જોયું, અને પૂર્ણાંકો માટે ટકા હું અને થોડા જ અન્ય. અને તે ફક્ત જરૂરિયાતો છે દ્રશ્ય રજૂઆત માટે તે માહિતી. અને આ દરેક ખરેખર હોઈ શકે છે parametrized અથવા અમુક રીતે tweaked, શું તમે નિયંત્રણ આગળ કરવા માંગો છો, તો આઉટપુટ પ્રકાર કે જે તમે વિચાર. અને હકીકતમાં, તે બહાર નથી કે માત્ર કરે છે ત્યાં એક નવી લાઇન માટે બેકસ્લેશ n છે. ત્યાં કંઈક બીજું બેકસ્લેશ કહેવાય છે એક વાહન વળતર, આર જે એક વધુ સમાન છે ઓલ્ડ સ્કૂલ ટાઇપરાઇટર, અને પણ વિન્ડોઝ ઘણા વર્ષો માટે ઉપયોગ થાય છે. ત્યાં ટેબો માટે બેકસ્લેશ ટી. બહાર ફેંકે છે, કે જો તમે કરવા માંગો છો શબ્દમાળા અંદર બે ભાવ, યાદ છે કે અમે ઉપયોગ કર્યો ડબલ ભાવ ડબલ ડાબી અને જમણી બાજુ પર ભાવ આમ અત્યાર સુધી અમારા શબ્દમાળાઓ અંત થાય છે. વસ્તુઓ છે કે જે સ્વાંગ લાગશે. તમે એક ડબલ ભાવ મૂકી કરવા માંગો છો શબ્દમાળા અને, ખરેખર મધ્યમાં, તેને જોવા માટે ગૂંચવણવાળો છે. અને તેથી તમે ભાગી હોય છે, જેથી વાત, કંઈક સાથે ડબલ ભાવ જેમ, શાબ્દિક ડબલ ભાવ બેકસ્લેશ. અને ત્યાં થોડા અન્ય હજુ પણ છે. અને અમે તે વધુ જોશો લાંબા પહેલાં વાસ્તવિક ઉપયોગ. તેથી હવે સંક્રમણ દો માહિતી, અને પ્રતિનિધિત્વ, અને અંકગણિત ઓપરેટરો, બધા જે અમને કેટલાક મકાન આપ્યું જેની સાથે બ્લોકો રમવા માટે. પરંતુ હવે આપણે ખરેખર આપી દો અમને શબ્દભંડોળ બાકીના અમે પહેલાથી જ હતી કે સ્ક્રેચ સાથે છેલ્લા અઠવાડિયે કેટલાક અન્ય પર એક નજર લેતી દ્વારા સી રચના તેમને બધા. પરંતુ વિચારો અમે છો વિશે ખરેખર માત્ર જોવા માટે થી અનુવાદ પર ભાર મૂકે છે એક ભાષા, સ્ક્રેચ, બીજા, સી અને સમય જતાં, અમે પસંદ પડશે અમારા ટૂલકિટ માટે વધુ સાધનો, તેથી વાત કરવા માટે, વાક્યરચના અનુસાર. અને, ખરેખર, તમે તે વિચારો જોશો હવે તેના બદલે છેલ્લા અઠવાડિયે થી પરિચિત છે. તેથી આ કરવા દો. ચાલો આગળ વધો અને એક કાર્યક્રમ ચાબુક દો કે ખરેખર કેટલાક સમીકરણો વાપરે છે, બુલિયન અભિવ્યક્તિ. મને આગળ અહીં જાઓ અને એક નવી ફાઈલ બનાવો. હું આ condition.c કહી શકશો. મને આગળ જવા દો અને CS50 પુસ્તકાલય સમાવેશ થાય છે. અને મને આગળ વધો અને સમાવેશ થાય છે દો અમારા કાર્યો માટે પ્રમાણભૂત io.h, અને printf, અને વધુ અનુક્રમે. મને મારી જાતને કે boilerplate આપી દો પૂર્ણાંક મુખ્ય રદબાતલ, જેની સમજૂતી અમે પડશે ભવિષ્યમાં પાછા આવો. હવે મને આગળ વધો અને આપી દો જાતે વિચાર પૂર્ણાંક દ્વારા પૂર્ણાંક. પછી મને આગળ વધો અને આ કરવા દો. હું કહેવા માંગો છો, તો હું ચાલો less-- છે સકારાત્મક, નકારાત્મક વચ્ચે તફાવત, અથવા શૂન્ય કિંમતો. તેથી જો હું શૂન્ય કરતાં ઓછી છે, મને દો માત્ર આ કાર્યક્રમ ફક્ત કહે છે, નકારાત્મક, બેકસ્લેશ n એ, બીજું જો હું શૂન્ય કરતાં વધારે હોય છે. હવે હું, અલબત્ત, કહેવા જાઉં છું printf હકારાત્મક, બેકસ્લેશ n એ. અને પછી બીજું હું આ કરી શકે if--. જો હું 0 બરાબર હું શું કરી શકે. પરંતુ હું ઓછામાં કરી લેતો ઓછા એક પહેલાથી જ ભૂલ. જણાવ્યું હતું કે સમાન નિશાની છે સમાન નથી, આપણે મનુષ્યો તેને ખબર છે. પરંતુ તે સોંપણી ઓપરેટર છે. અને અમે 0 લેવા નથી માંગતા અધિકાર અને હું ડાબી પર મૂકો. તેથી આ મૂંઝવણ અવગણવા માટે, અથવા કદાચ સમકક્ષ દુરુપયોગ સાઇન ઇન કરો, મનુષ્યો કેટલાક વર્ષો પહેલા લીધી કે ઘણા પ્રોગ્રામિંગ ભાષાઓ તમે સમાનતા માટે ચેક કરવા માંગો છો જ્યારે ડાબી અને જમણી વચ્ચે, તમે ખરેખર ઉપયોગ સમકક્ષ સમકક્ષ હોય છે. તેથી તમે બરાબર બે વાર સાઇન ઇન હિટ. તમે જમણી બાજુ પર થી સોંપી કરવા માંગો છો જ્યારે ડાબી, તમે એક સમાન સાઇન વાપરો. તેથી અમે છે આ બીજું શું કરી શકે છે જો હું બરાબર શૂન્ય સમકક્ષ હોય છે. હું પછી જાઓ અને શકે મારા સર્પાકાર કૌંસ ખોલો, અને કહે છે, printf 0, બેકસ્લેશ n એ, થાય છે. પરંતુ કેવી રીતે આ યાદ માર્ગ માં ફોર્કનો કામ કરી શકે છે. અને, ખરેખર, માત્ર તર્ક વિશે વિચારો. હું એક નંબર છે. તે પૂર્ણાંક ખાસ છે. એનો અર્થ એ થાય કે તે ઓછી જ હશે 0, અથવા 0, અથવા 0 કરતા વધારે કરતાં. તેથી આ પ્રકારની છે આગા મૂળભૂત કેસ. અને તેથી અમે, જેમ કરી શકે છે સ્ક્રેચ, બીજું તો સાથે વિતરણ અને માત્ર જે કહે છે. તાર્કિક રીતે, જો તમે પ્રોગ્રામર ત્યાં માત્ર ખબર જે ત્રણ ડોલથી દૃશ્ય, પ્રથમ fall-- શકો દ્વિતીય, અથવા ત્રીજા આ નથી કિસ્સામાં માં વધારાની ચોકસાઇ ઉમેરી સંતાપ અને ત્યાં વધારાના તર્ક. જસ્ટ સાથે આગળ વધો મૂળભૂત કેસ બીજું અહીં. હવે, ચાલો આગળ વધો દો આ બચત કર્યા પછી, બનાવવા શરતો ડોટ conditions-- સ્લેશ એક મહાન વપરાશકર્તા ઈન્ટરફેસ, કારણ કે હું પૂછવાની છું વપરાશકર્તા, હું અગાઉ ઉલ્લેખ કર્યો છે. પરંતુ તે દંડ છે. અમે તે સરળ રાખવા પડશે. નંબર 42 પ્રયાસ કરીએ. અને તે હકારાત્મક છે. નંબર પ્રયાસ કરીએ નકારાત્મક 42, નકારાત્મક. કિંમત 0 પ્રયાસ કરીએ. અને, ખરેખર, તે કામ કરે છે. હવે, તમે પહેલાં સમસ્યાઓ સાથે જોશો લાંબા, પરીક્ષણ વસ્તુઓ ત્રણ વખત, કદાચ પૂરતી નથી. તમે કદાચ અમુક પરીક્ષણ કરવા માંગો છો મોટી સંખ્યામાં, કેટલાક નાના નંબરો, કેટલાક ખૂણે કિસ્સાઓમાં, કારણ અમે તેમને વર્ણવવા માટે આવે પડશે. એક પરંતુ હવે માટે, આ છે ખૂબ સરળ કાર્યક્રમ. અને હું ખૂબ ખાતરી છું, તાર્કિક, તે ત્રણ કિસ્સાઓમાં પડે છે. અને, ખરેખર, પણ અમે જોકે માત્ર સંભવિત downsides પર ધ્યાન કેન્દ્રિત કર્યું અશુદ્ધિ અને ઓવરફ્લો માં વાસ્તવિકતા જ્યાં CS50 ઘણી સમસ્યાઓ, અમે ચિંતા નથી જઈ રહ્યા છે વિશે, બધા સમય, ઓવરફ્લો તે મુદ્દાઓ અને અશુદ્ધિ છે, કારણ કે, હકીકતમાં, સી, તે ખરેખર બધા નથી કે તે વસ્તુઓ ટાળવા માટે સરળ છે. તમે ગણતરી કરવા માંગો છો મોટી, અને મોટા, અને મોટા, તે તારણ છે કે તમે તરકીબો છે ઉપયોગ કરી શકો છો ઘણી વખત વસ્તુઓ કહેવાય સંડોવતા પુસ્તકાલયો, કોડ ઓફ સંગ્રહો, કે અન્ય લોકો લખ્યું હતું કે તમે ઉપયોગ કરી શકો છો, જેમ અને અન્ય ભાષાઓ જાવા અને અન્ય, ખરેખર તે ઘણો સરળ બનાવવા પણ ઊંચા ગણતરી. તેથી તે ખરેખર આ જોખમો કેટલાક છે ભાષા તમે ઉપયોગ કાર્ય. અને આગામી સપ્તાહ માં, અમે પડશે જુઓ કે કેવી રીતે ખતરનાક સી ખરેખર જો તમે તેને યોગ્ય રીતે ઉપયોગ કરતા નથી હોઈ શકે છે. પરંતુ ત્યાંથી, અને સાથે પાયથોન અને જાવાસ્ક્રિપ્ટ, કરશે અમે કેટલાક વધારાના સુરક્ષા પર સ્તર, અને તે જોખમ ઓછા ચાલે છે. તેથી ચાલો આ બનાવવા દો થોડી વધુ અમારા કાર્યક્રમ રસપ્રદ તર્ક. તેથી મને આગળ વધો અને બનાવવા દો એક કાર્યક્રમ લોજિકલ કહેવાય તેથી હું કેટલાક સાથે રમી શકે છે વાસ્તવિક તર્કશાસ્ત્ર, logical.c. હું માત્ર કૉપિ કરો અને કેટલાક પેસ્ટ પડશે અગાઉ જેથી કોડ હું પાછા વિચાર આ સરસ શરૂ બિંદુ છે. મને દો આ સમય ઘરનાં પરચૂરણ કામો સી હું છું તે સી એક નામ આપી રહ્યું તે પરંપરાગત છે માત્ર કારણ કે, વપરાશકર્તા માંથી એક અક્ષર મળે છે. અને જેમ ડોળ કરવો દો હું ભાગ અમલીકરણ છું કે આર કાર્યક્રમ, દૂર તે પહેલાં કાર્યક્રમ વપરાશકર્તા પૂછવામાં ફાઇલ દૂર કરો. અમે આ કેવી રીતે કરી શકે? મને કહે માંગો છો, તો સી બરાબર બરાબર, ભાવ અવતરણ ચિહ્નો પૂરાં કરવાં, વાય છે, પછી હું ધારે જાઉં છું વપરાશકર્તા હા પસંદ કર્યું છે કે. હું માત્ર હા છાપવા માટે જઇ રહ્યો છું. તે ખરેખર લખી હતી, તો દૂર કાર્યક્રમ, અમે ફાઇલ દૂર કરી શકે છે કોડ વધુ રેખાઓ સાથે. પરંતુ અમે તે સરળ રાખવા પડશે. બાકી જો સી બરાબર n-- બરાબર અને હવે અહીં, હું કહેવા જાઉં છું, વપરાશકર્તા પાસે કોઈ અર્થ છે જ જોઈએ. અને પછી બીજું, તમે શું જાણો છો? હું બીજું શું ખબર નથી વપરાશકર્તા ટાઇપ કરવા માટે જતા હોય છે. તેથી હું માત્ર કહે છે કે જાઉં છું તે એક ભૂલ છે, ગમે તે અથવા તેણી ખરેખર લખ્યો. તેથી અહીં શું થઈ રહ્યું છે? ત્યાં એક મૂળભૂત તફાવત છે હું ભૂતકાળમાં જે કંઇ કર્યું છે વિરુદ્ધ. ડબલ અવતરણચિહ્નો, ડબલ અવતરણ ડબલ ક્વોટ્સ, અને, હજુ સુધી, એક જ અવતરણચિહ્નો, એક જ અવતરણચિહ્નો. તેને સી માં વળે છે, કે જ્યારે તમે શબ્દમાળા લખવા માંગો છો, તમે ડબલ નો ઉપયોગ કરવા માટે, અમે કર્યું જ printf સાથે આ બધા સમય ઉપયોગ કરી રહ્યો. પરંતુ જો તમે માત્ર એક સાથે કામ કરવા માંગો છો, તો એક પાત્ર, એક કહેવાતા ચાર, પછી તમે ખરેખર એક જ અવતરણચિહ્નો ઉપયોગ કરે છે. તમે જે લોકો પ્રોગ્રામ છે પહેલાં, તમે ન હોય શકે છે આ ચિંતા હતી ચોક્કસ ભાષાઓમાં તફાવત. સી, તે બાબત નથી. અને તેથી જ્યારે હું એક ચાર વિચાર અને હું માંગો છો બરાબર ઉપયોગ કરીને કે ઘરનાં પરચૂરણ કામો સરખાવવા માટે વાય અથવા n જેવા કેટલાક પત્ર બરાબર, હું, ખરેખર, એક જ અવતરણચિહ્નો કરવાની જરૂર છે. હવે, ચાલો આગળ વધો અને આ કરવા દો. ચાલો આગળ વધો અને બનાવવા દો લોજિકલ ડોટ લોજિકલ સ્લેશ. અને હવે હું પૂછવામાં આવી રહી છું. તેથી, કદાચ, એક સારો વપરાશકર્તા અનુભવ ખરેખર મને કહો તો શું અહીં કરવું. પરંતુ હું જાઉં છું માત્ર અકારણ સરસ બરાબર હા માટે, વાય કહે છે. તેને ફરીથી ચલાવો, એ કોઈ, સરસ. અમુક લોકો મને ખબર જેવા ધારો, મારા Caps Lock key ઘણીવાર બધા પર છે. તેથી હું ભૂલ કરી મૂડી વાય, દાખલ કરો. ઠીક છે, તે ચોકકસ શું હું અપેક્ષા છું નથી. ખરેખર, કમ્પ્યુટર શાબ્દિક શું કરી રહ્યા છે હું તેને કહ્યું હતું કે શું કરી માટે તપાસો લોઅરકેસ Y અને લોઅરકેસ એન. આ સારી જેવી લાગે છે નથી વપરાશકર્તા અનુભવ, છતાં. મારા માટે પૂછો અને સ્વીકારી ક્યાં લોઅર કેસ અથવા ઉપલા કેસ. તેથી તે બહાર વળે છે, તમે કરવા માંગો છો શકે છે સ્ક્રેચ માં કંઈક કહે છે, શાબ્દિક અથવા સી બરાબર જેવા મૂડી એક નોંધાયેલા વાય સમકક્ષ હોય છે. બહાર ફેંકે છે, સી નથી આ શાબ્દિક શબ્દ અથવા. પરંતુ તે બે ઊભી બાર હોય છે. તમે સામાન્ય રીતે પાળી પકડી છે તમે યુએસ કીબોર્ડ ઉપયોગ કરી રહ્યાં છો, તો અને ઊભી પટ્ટી હિટ તમારી પરત ફરવા માટેની કી ઉપર કી. પરંતુ આ ઊભી પટ્ટી ઊભી પટ્ટી અર્થ એ થાય કે. જો તેનાથી વિપરિત, અમે ઇચ્છતા કહે છે અને સ્ક્રેચ જેમ, માટે, અમે 'ચિન્હ ચિન્હ કરી શકે છે. કે કોઈ તાર્કિક દૃષ્ટિએ અહીં છે, કારણ કે માનવ કદાચ ન કરી શકે ટાઇપ કરેલ છે બંને Y અને લોઅરકેસ વાય અને તે જ પાત્ર તરીકે મૂડી વાય. જેથી અથવા શું આપણે અહીં માંગો. જેથી હું બંને સ્થળોએ આ કરવા માટે, અથવા સી સમકક્ષ સમકક્ષ મૂડી એન, હવે પુનઃ ચલાવો, લોજિકલ બનાવવા, લોજિકલ પુનઃ ચલાવો. હવે, હું વાય લખી શકો છો. અને હું તેને ફરીથી કરી શકો છો સાથે મૂડી વાય, અથવા મૂડી એન અને હું વધારાના ઉમેરો કરી શકે છે હજુ પણ સંયોજનો. તેથી આ એક લોજિકલ છે હવે ત્યાં સુધી કાર્યક્રમ હું તાર્કિક ચકાસણી છું આ કિંમત અથવા આ કિંમત. અને હું ન હોય જરૂરી છે, વધુ બે IFS અથવા અન્ય IFS સાથે આવે છે. હું ખરેખર કેટલાક ભેગા કરી શકો છો આ રીતે સાથે મળીને સંબંધિત તર્ક. તેથી આ વધુ સારું હશે ખાલી કરતાં રચાયેલ , એમ કહીને જો સી લોઅર કેસ વાય સમકક્ષ હોય છે, બીજું છાપો હા, જો સી બરાબર મૂડી વાય, બીજું છાપો હા, જો સી બરાબર બીજા શબ્દોમાં કહીએ તો lower--, તમારી પાસે ન હોય વધુ અને વધુ શાખાઓ. તમે સમકક્ષ કેટલાક ભેગા કરી શકો છો તાર્કિક શાખાઓ, આ રીતે છે. તેથી આપણે માત્ર એક પર એક નજર કરીએ અંતિમ ઘટક છે, એક અંતિમ રચના, કે સી પરવાનગી આપે છે. અને અમે પાછા આવો પડશે અન્ય હજુ પણ ભવિષ્યમાં. અને પછી અમે જોઈ દ્વારા તારણ પડશે code-- નથી ચોકસાઈ પર કોડ મેળવવામાં work-- પરંતુ ડિઝાઇન કોડ છે, અને તે બીજ છોડ પર શરૂઆતમાં. તેથી દો મને આગળ વધો અને અહીં એક નવી ફાઈલ ખોલો. શું તમે જાણો છો? હું ફરીથી અમલ કરવા જઇ રહ્યો છું તે જ કાર્યક્રમ, પરંતુ અલગ રચના ઉપયોગ. તેથી મને ઝડપથી દો મારી આપી ઍક્સેસ cs50.h સમાવેશ થાય છે માટે CS50 પુસ્તકાલય માટે, printf માટે પ્રમાણભૂત io.h. મારા પૂર્ણાંક મુખ્ય રદબાતલ આપો. અને પછી અહીં, દો મને આગળ વધો અને આ કરવા. ચાર સી, ચાર વિચાર નહીં પહેલાંની જેમ. પછી મેં એક નવું રચના નો ઉપયોગ કરવા જઇ રહ્યો છું now-- સ્વિચ, શું પાત્ર પર? તેથી સ્વીચ જેવા પ્રકારની છે એક ટ્રેન પાટા સ્વિચ. અથવા, ખરેખર, તે પ્રકારની છે એક બીજું તો, બીજું તો પરંતુ કંઈક અલગ લખેલા. એક સ્વીચ આ જેવો દેખાય છે. તમે સ્વીચ હોય છે, અને પછી શું અક્ષર અથવા નંબર તમે જોવા માંગો છો, પછી કેટલાક સર્પાકાર કૌંસ ગમે સ્ક્રેચ, ફક્ત આ સામગ્રી કરવા કહે છે. અને પછી તમે વિવિધ કિસ્સાઓમાં છે. તમે જો અને બીજું ઉપયોગ કરતા નથી. તમે શાબ્દિક શબ્દ કેસ ઉપયોગ કરે છે. અને તમે આ કંઈક કહે છે. તેથી એક લોઅરકેસ વાય કિસ્સામાં, અથવા મૂડી વાય કિસ્સામાં, આગળ જાઓ અને હા છાપશે. અને પછી સ્વીચ બહાર તૂટી જાય છે. બસ આ જ. અમે પૂર્ણ કરી લીધું. બીજું તો, તેથી વાત કરવા માટે, નીચલા કિસ્સામાં n એ, અથવા મૂડી એન, પછી આગળ વધો અને પ્રિન્ટ બહાર કોઈ છે, અને પછી તૂટી જાય છે. Else-- અને આ પ્રકારની છે મૂળભૂત કેસ indeed-- printf ભૂલ ધોરણ અને સારા પગલા માટે જ છે, તેમ છતાં તાર્કિક આ વિરામ જરૂરી નથી કારણ કે અમે ઓવરને અંતે છો કોઈપણ સ્વીચ ઓફ, હવે હું સ્વીચ બહાર ભંગ કરી રહ્યો છું. તેથી આ એક થોડી અલગ લાગે છે. પરંતુ, તાર્કિક, તે ખરેખર સમકક્ષ. અને તમે શા માટે ઉપયોગ કરશે અન્ય પર એક? કેટલીકવાર, માત્ર વ્યક્તિગત પસંદગી, ક્યારેક સૌંદર્ય શાસ્ત્ર, જો હું આ નજરમાં હવે, ત્યાં કંઈક છે માટે કહી શકાય આ કોડ વાંચી શકાય. હું તેનો અર્થ, હકીકત એ છે કે આ દિમાગમાં ક્યારેય કોડ રૂમ માં અમને ઘણા માટે નવા છે. પરંતુ તે માત્ર પ્રકારની ખૂબ છે. તમે નાના વાય, મૂડી વાય જુઓ, નીચલા કિસ્સામાં n એ, મૂડી એન મૂળભૂત, તે માત્ર પ્રકારની કૂદકા એક રીતે તમે બહાર કે, તાર્કિક, કદાચ અગાઉના ઉદાહરણ IFS, અને ઊભી બાર સાથે, અને બીજું IFS, ન હોય શકે છે. તેથી આ વ્યક્તિગત ખરેખર બાબત છે પસંદગી, ખરેખર, અથવા વાંચી શકાય, કોડ. પરંતુ વિધેય દ્રષ્ટિએ, મને દો આગળ વધો અને એક સ્વીચ, કોઈ સ્લેશ બનાવવા સ્વીચ છે, અને હવે નાના વાય છાપી, મૂડી વાય, લોઅરકેસ n એ, મૂડી એન, ડેવિડ, ફરીથી પ્રયત્ન કરો કે છે, કારણ કે નહિં કે એક પાત્ર. ઈચ્છિત તરીકે માતાનો, એક્સ, ભૂલ કરવા દો. અને, logically-- અને આ કંઈક છે હું general-- પણ પ્રોત્સાહિત કરશે છતાં અમે માત્ર ખંજવાળ કરી રહ્યાં છો આમાંના કેટલાક લક્ષણો સપાટી. અને તે સ્પષ્ટ ન પણ હોઈ શકે છે જ્યારે તમે જાતે કીબોર્ડ પર નીચે બેસી, આ કેવી રીતે કામ કરે છે? આ શું છે? વિશે સુંદર વસ્તુ લેપટોપ કે ડેસ્કટોપ, અથવા ઍક્સેસ કમ્પાઇલર સાથે કમ્પ્યુટર પર, અને આ જેવા કોડ એડિટર સાથે, તમે હંમેશા આ જવાબ કરી શકો છો માત્ર પ્રયાસ દ્વારા પોતાને માટે પ્રશ્નો. દાખલા તરીકે, જો રેટરિકલ હાથ પર પ્રશ્ન હતા, શું થાય છે જો તમે ભૂલી તમારા વિરામ નિવેદનો? કે જે ખરેખર એક ખૂબ જ સામાન્ય વસ્તુ કરવા માટે, કારણ કે તેને જોવા નથી જેમ તમે ખરેખર તેમને જરૂર છે. તેઓ ખરેખર પૂર્ણ નથી તમારા એક વાક્ય અથવા સર્પાકાર જેવા વિચાર્યું તાણવું કરે છે. ચાલો આગળ વધો દો અને કોડ પુનઃકમ્પાઈલ અને જુઓ. તેથી સ્વીચ, કોઈ સ્લેશ સ્વીચ બનાવે છે. નીચા કેસ ટાઈપ કરીએ વાય, ટોચ કેસ દાખલ કરો. તેથી હું વાય લખ્યો. કાર્યક્રમ જણાવ્યું હતું કે કોઈ, હા, ભૂલ, જોકે તે તેના મન બદલવાનો હતો. પરંતુ તે પ્રકારની હતી, કારણ કે શું થાય છે એક સ્વીચ સાથે પ્રથમ કેસ છે કે મેચ અનિવાર્યપણે અર્થ થાય છે, અરે કોમ્પ્યુટર, તે નીચે કોડ તમામ ચલાવો. અને જો તમે ન કહી શકું વિરામ, અથવા બ્રેક કહેવું નથી, અથવા વિરામ કહેવું નથી, કમ્પ્યુટર તમાચો રહ્યું છે તે રેખાઓ તમામ મારફતે અને ત્યાં સુધી તેમને બધા ચલાવવા તે સર્પાકાર તાણવું નોંધાયો નહીં. તેથી બ્રેક્સ છે, ખરેખર, જરૂરી. પરંતુ એક takeaway અહીં, ત્યારે શંકા, કંઈક પ્રયાસ કરો. કદાચ તમારો કોડ પ્રથમ સેવ, અથવા તે એક વધારાની ફાઇલ સંગ્રહ જો તમે તેના વિશે ખરેખર ચિંતિત હો ગડબડ અને પુનઃપ્રાપ્ત કર્યા કામ કે જે તમે ખબર કામ કરે છે. પરંતુ બધી વસ્તુઓ પ્રયાસ કરો. અને ભયભીત ન હોઈ નથી, કદાચ, કમ્પ્યુટર શું કરી શકે તેના, અથવા તમે કંઈક તોડી શકે છે. તમે હંમેશા પાછા ફરવા શકે છે કેટલાક પહેલાંની આવૃત્તિ છે. તેથી આપણે જોઈ દ્વારા ઓવરને દો કોડ ઓફ ડિઝાઇન ખાતે. આપણે લખવા હવે આ ક્ષમતા હોય છે શરતો અને લખવા આંટીઓ, અને ચલો, અને કોલ કાર્ય કરે છે. તેથી, પ્રમાણિકપણે, અમે પ્રકારની પર પાછા છો જ્યાં અમે સ્ક્રેચ સાથે એક સપ્તાહ પહેલા હતા, ઓછા આકર્ષક શાબ્દિક હોવા છતાં સ્ક્રેચ કરતાં પર્યાવરણ માટે પરવાનગી આપે છે. પરંતુ નોટિસ અમે કેવી રીતે ઝડપથી હસ્તગત કર્યું કે શબ્દભંડોળ છે, પણ જો તે ડુબી થોડો સમય લાગી રહ્યું છે, કે જેથી અમે હવે આ શબ્દભંડોળ ઉપયોગ કરી શકો છો વધુ રસપ્રદ કાર્યક્રમો લખવા માટે. અને ના બાળક પગલું લેવા દો તે તરફ, કારણ અનુસરે છે. મને આગળ જવા દો અને અહીં એક નવી ફાઈલ બનાવો. હું આ કૉલ જાઉં છું prototype.c, અને દાખલ પ્રથમ વખત માટે, ક્ષમતા તમારા પોતાના કાર્યો કરે છે. તમે કેટલાક હોય શકે સ્ક્રેચ સાથે આ પૂર્ણ થાય, જેમાં તમે બનાવી શકો છો તમારી સ્ક્રેચ માં પોતાના વૈવિધ્યપૂર્ણ બ્લોકો, અને પછી તેમને સ્થળ માં ખેંચો ત્યાં તમે સી માંગો છો અને સૌથી પ્રોગ્રામિંગ ભાષાઓ, તમે બરાબર કરી શકો છો કરતી તમારા પોતાના કાર્યો કરે છે, જો તેઓ પહેલાથી જ અસ્તિત્વમાં નથી. તેથી, ઉદાહરણ તરીકે, દો મને આગળ વધો અને cs50.h સમાવેશ થાય છે, સમાવેશ થાય છે ધોરણ io.h, પૂર્ણાંક મુખ્ય રદબાતલ. અને હવે અમે એક છે જવા માટે તૈયાર પ્લેસહોલ્ડર. હું પ્રિન્ટીંગ વસ્તુઓ રાખવા આજે લોકોના નામો જેવા. અને તે જેવા લાગે છે સરસ નહિં હોય, તો ત્યાં એક કાર્ય પ્રિન્ટ નામ કહેવાય હતા? હું printf ઉપયોગ કરવાની જરૂર નથી. હું યાદ નથી બધા બંધારણમાં કોડ. શા માટે હું ન હતો, કે શા માટે નથી, મને પહેલાં કોઈને કર્યું કહેવાય છે એક કાર્ય પ્રિન્ટ બનાવવા નામ, કે જે અમુક નામ આપવામાં આવે છે, ફક્ત તેને છાપે? અન્ય શબ્દોમાં, જો હું કહું છું, અરે, કોમ્પ્યુટર, મને શબ્દમાળા આપે જેમ કે માટે વપરાશકર્તા પૂછવા દ્વારા, માતાનો CS50 ગેટ શબ્દમાળા કાર્ય મારફતે. અરે, કોમ્પ્યુટર, કે જેઓ શબ્દમાળા મૂકી ડાબી બાજુ ચલ, અને તે ઓ કૉલ. અને પછી, અરે કોમ્પ્યુટર, આગળ વધો અને છાપો કે જે વ્યક્તિ નામ, થાય છે. હવે, તે સરસ હશે, કારણ કે આ કાર્યક્રમ, યોગ્ય રીતે નામ આપવામાં આવ્યું, મને કહે છે તે શું કરવા માટે માનવામાં આવે તે કાર્ય નામ માર્ગ દ્વારા. મને જવા દે અને પ્રોટોટાઇપ બનાવવા, દાખલ કરો. અને કમનસીબે, આ ઉડાન નથી જઈ રહ્યા છે. Prototype.c, 7 વાક્ય અક્ષર 5, ભૂલ, ગર્ભિત ઘોષણા કાર્ય પ્રિન્ટ નામ C99, C99 અમાન્ય છે સી ની આવૃત્તિ જેનો અર્થ થાય છે 1999 માં બહાર આવ્યા હતા. કે બધા છે. તેથી હું શું ખબર નથી આ બધા છતાં થાય છે. પરંતુ હું લાલ ભૂલ ઓળખી નથી. તે ખૂબ સ્પષ્ટ છે. અને તેને લાગે છે સાથે અહીં લીલા પાત્ર, મુદ્દો પ્રિન્ટ નામ સાથે, ઓપન છે કૌંસ એસ, બંધ કૌંસ, અર્ધવિરામ. પરંતુ ગર્ભિત ઘોષણા કાર્ય અમે થોડા સમય અગાઉ જોઈ હતી. આનો અર્થ એ થાય, ફક્ત કે રણકાર ખબર નથી હું શું અર્થ થાય. હું શબ્દભંડોળ શબ્દ ઉપયોગ કર્યો છે તે છે ક્યારેય અથવા જોઈ પહેલાં શીખવવામાં આવી. અને તેથી હું તેને શીખવવા માટે જરૂર આ કાર્ય શું અર્થ થાય છે. તેથી હું આગળ જાઓ અને તે કરવા માટે જઇ રહ્યો છું. હું આગળ જાઓ અને અમલ કરવા માટે જઇ રહ્યો છું મારા પોતાના કાર્ય પ્રિન્ટ નામ કહેવાય. અને હું કહે છે નીચે પ્રમાણે જાઉં છું, કે તે આ printf, હેલ્લો, ટકા કરે એસ, બેકસ્લેશ n એ, નામ, અર્ધવિરામ. તેથી હું માત્ર શું કર્યું? તેથી તે બહાર વળે છે, માટે તમારા પોતાના કાર્ય અમલ, અમે પ્રકારની કેટલાક ઉધાર મુખ્ય જેવું જ સમાન માળખું અમે હમણાં જ કર્યું છે કે માટે લેવામાં મંજૂર છે, અને હું ખબર માત્ર નકલ અને ખૂબ ખૂબ શું પેસ્ટ હું ભૂતકાળમાં લખી રહ્યો છું. પરંતુ અહીં પેટર્ન નોટિસ. પૂર્ણાંક, મુખ્ય, ખાલીપણુ, અમે સિવાય પીંજવું પડશે પહેલાં લાંબા સમય સુધી કે શું ખરેખર થાય છે. પરંતુ આજે, માત્ર સમાંતરણ નોટિસ. રદબાતલ, પ્રિન્ટ નામ, શબ્દમાળા નામ છે, તેથી ત્યાં છે જાંબલી શબ્દ છે, જે અમે શરૂ કરવા માટે જઈ રહ્યાં છો વળતર પ્રકાર ફોન, નામ કાર્ય, અને પછી ઇનપુટ. તેથી, ખરેખર, અમે distill શકો છેલ્લા અઠવાડિયે જેમ આ પ્રકારની કારણ કે, આ નામ અથવા કોડ અમે છો અલ્ગોરિધમનો write-- કરવા જઇ અલ્ગોરિધમનો અંતર્ગત કોડ અમે લખી રહ્યા છીએ. આ તેની ઇનપુટ છે. આ તેની આઉટપુટ છે. આ કાર્ય, પ્રિન્ટ નામ છે, નામ કહેવાય શબ્દમાળા લેવા માટે રચાયેલ છે, અથવા ગમે, ઇનપુટ તરીકે, અને પછી રદબાતલ. તે કંઈપણ પાછા નથી, જેવી શબ્દમાળા વિચાર અથવા પૂર્ણાંક કરે વિચાર. તેથી તે મને કંઈક પાછા સોંપી રહ્યું છે. તે માત્ર એક હોય ચાલી રહ્યું છે આડ અસર છે, તેથી વાત કરવા માટે, એક વ્યક્તિ નામ નામ છાપવા. તેથી નોંધ્યું છે, 7 વાક્ય, હું પ્રિન્ટ નામ કહી શકો છો. 10 વાક્ય હું વ્યાખ્યાયિત કરી શકો છો અથવા પ્રિન્ટ નામ અમલ. પરંતુ કમનસીબે, કે પૂરતી છે. મને આગળ જવા દો અને બચત પછી આ પુનઃકમ્પાઈલ. થોભો, હવે, હું તેને બનાવી છે ખરાબ, તે જણાય છે. તેથી ગર્ભિત ઘોષણા કાર્ય પ્રિન્ટ નામ અમાન્ય છે. અને, ફરી, ત્યાં વધુ ભૂલો છે. પરંતુ હું અગાઉ ચેતવણી, પણ તમે સાથે ભરાઈ ગયાં, તો અથવા થોડી ઉદાસી ઘણા જોવા માટે ભૂલો, પ્રથમ પર જ ધ્યાન કેન્દ્રિત માત્ર શરૂઆતમાં, કારણ કે તે કદાચ એક કેસ્કેડીંગ અસર થઇ હતી. જેથી C અથવા રણકાર વધુ ચોક્કસ રીતે, હજુ પણ પ્રિન્ટમાં નામ ઓળખી શકતી નથી. અને કારણ કે રણકાર છે, ડિઝાઇન દ્વારા, પ્રકારની છે મૂંગું છે. તે માત્ર ત્યારે જ કરે છે તમે શું કરવા તે કહેવું. અને તે માત્ર તે આવું કરે જેમાં તમે શું કરવું તે જણાવો. તેથી હું રેખા ચાર મુખ્ય વ્યાખ્યાયિત કરે છે, જેમ આપણે ખૂબ વારંવાર કરી રહ્યો છું. હું 10 વાક્ય પર પ્રિન્ટ નામ વ્યાખ્યાયિત કર્યું. પરંતુ હું ઉપયોગ કરવાનો પ્રયાસ કરી રહ્યો છું રેખા સાત પર પ્રિન્ટ નામ. તે ખૂબ જ ટૂંક સમયમાં, હજુ સુધી અસ્તિત્વમાં નથી. તેથી હું હોંશિયાર હોઈ શકે છે, અને જેમ હોઈ શકે છે, ઠીક છે, તેથી આપણે માત્ર સાથે રમવા દો, અને પ્રિન્ટ નામ ખસેડવા અહીં, અને ફરીથી કમ્પાઇલ. મારા ઓહ ગોડ. તે કામ કર્યું હતું. તે કે જે સરળ હતું. પરંતુ તર્ક બરાબર છે. તમે રણકાર શીખવે છે તે શું પ્રથમ કાર્ય વ્યાખ્યાયિત કરવામાં આવે છે. પછી તમે તેનો ઉપયોગ કરી શકો છો. પરંતુ, પ્રમાણિકપણે, આ લાગે છે લપસણો ઢાળ છે. તેથી દરેક વખતે હું ચલાવવા એક સમસ્યા, હું માત્ર છું પ્રકાશિત કરો અને કોડ નકલ કરવા જઈ હું લખ્યું હતું કે, તે કાપી છે અને તે અહીં પેસ્ટ. અને, ખરેખર, અમે કરી શકે છે કેટલાક દૃશ્યો વ્યવસ્થા જ્યાં એક કાર્ય કદાચ અન્ય કૉલ કરવા માટે જરૂર છે. અને તમે માત્ર દરેક મૂકી શકો છો દરેક અન્ય ઉપર કાર્ય કરે છે. તેથી તે ત્યાં છે બહાર વળે એક વધુ સારો ઉકેલ. અમે આ પ્રયત્ન છોડી શકો છો. અને, પ્રમાણિકપણે, તે સામાન્ય રીતે સારું છે, અને અનુકૂળ છે, અને સારી ડિઝાઇન મુખ્ય પ્રથમ મૂકી છે, કારણ કે, ફરી, જેમ જ્યારે લીલો ધ્વજ ક્લિક કર્યું મુખ્ય, તે કાર્ય છે કે મૂળભૂત રીતે ચલાવવામાં નહીં. તેથી તમે તેમજ મૂકી શકે તે ફાઈલ ટોચ પર કે જેથી તમે અથવા કોઇ ત્યારે અન્ય માનવ ફાઇલ પર દેખાય છે તમે જાણો છો શું થઈ રહ્યું છે માત્ર મુખ્ય પ્રથમ વાંચીને. તેથી તે બહાર વળે છે, અમે રણકાર કહી શકો છો સક્રિય, અરે, રણકાર, ચાર લીટી પર, હું અમલ કરવા માટે વચન કહેવાય છે એક કાર્ય પ્રિન્ટ નામ કે એક શબ્દમાળા તરીકે ઓળખાય નામ લે ઇનપુટ, અને વળતર કશું, રદબાતલ છે. અને હું આસપાસ મળશે તે પછી અમલીકરણ. અહીં મુખ્ય આવે છે. મુખ્ય હવે લીટી પર 9 ઉપયોગ કરી શકો છો પ્રિંટ નામ કારણ કે રણકાર કે વિશ્વાસ છે, છેવટે, તે વ્યાખ્યા સામનો કરશે પ્રિન્ટ નામ અમલીકરણ. તેથી મારા ફાઈલ બચત પછી, દો મને આગળ વધો અને પ્રોટોટાઇપ બનાવવા, આ સમય સારી દેખાય છે. કોઈ સ્લેશ, પ્રોટોટાઇપ, મને દો આગળ વધો અને એક નામ લખો. ડેવિડ, ડેવિડ હેલો, Zamila, હેલો Zamila, અને ખરેખર, હવે તે કામ કરે છે. તેથી ઘટક અહીં છે કે અમે કર્યું છે વૈવિધ્યપૂર્ણ કાર્ય કરવામાં આવે છે, વૈવિધ્યપૂર્ણ જેવી સ્ક્રેચ બ્લોક અમે તેને કૉલ કરી રહ્યાં છો. પરંતુ શરૂઆતથી વિપરીત જ્યાં તમે કરી શકો છો માત્ર તે બનાવવા અને તેનો ઉપયોગ શરૂ કરવા માટે, હવે અમે એક હોય છે થોડી વધુ વિદ્યાડબંરવાળું, અને ખરેખર રણકાર તાલીમ વાપરવા માટે, અથવા તે અપેક્ષા છે. હવે, એક કોરે, કારણ શા માટે આ બધા સમય હોય છે અમે માત્ર અકારણ સહિત વિશ્વાસ પર કરવામાં આવી Cs50.h, અને પ્રમાણભૂત io.h સમાવેશ થાય છે? વેલ, તે તારણ, થોડા અન્ય વસ્તુઓ વચ્ચે, બધા કે તે ડોટ એચ છે ફાઇલો, જે થાય ફાઈલો હોય છે. જેથી તેઓ વાત કરવા માટે હેડર ફાઈલો રહ્યાં છો. તેઓ હજુ પણ સી માં લખાયેલ રહ્યાં છો, પરંતુ તેઓ ફાઇલ એક અલગ પ્રકારની છો. હવે માટે, તમે ખૂબ ખૂબ ધારણ કરી શકે છે બધા cs50.h ની અંદર છે કે આ જેવા કેટલાક એક લાઇનર્સ નથી કાર્યો પ્રિન્ટ નામ કહેવાય છે, પરંતુ શબ્દમાળા વિચાર, મેળવો ફ્લોટ, અને થોડા અન્ય. અને ત્યાં જ પ્રોટોટાઇપ છે, એક લાઇનર્સ, પ્રમાણભૂત io.h ની અંદર printf, જે હવે છે મારા પોતાના નામ છાપો કાર્ય. તેથી અન્ય શબ્દોમાં, આ સમગ્ર સમય અમે કર્યું માત્ર અકારણ નકલ કરવામાં આવી અને પેસ્ટ આ સમાવેશ થાય છે, સમાવેશ થાય છે કે શું થઈ રહ્યું છે? તે કડીઓ માત્ર પ્રકારની છે શું કાર્યો તરીકે રણકાર માટે આવે છે, ખરેખર, અમલ, માત્ર અલગ ફાઈલોમાં અન્યત્ર અન્યત્ર સિસ્ટમ. તેથી અમે પ્રિન્ટ નામ અમલ કર્યો છે. તે આ આડઅસર હોય છે સ્ક્રીન પર કંઈક છાપવા. પરંતુ તે ખરેખર નથી મને કંઈક પાછા સોંપી. અમે કેવી રીતે વિશે જવા નથી એક કાર્યક્રમ અમલમાં મને કંઈક પાછા હાથ છે? ઠીક છે, ચાલો આ પ્રયાસ કરીએ. મને આગળ વધો અને અમલ દો તરીકે ઓળખાતી ફાઈલ return.c તેથી અમે કેવી રીતે કંઈક નિદર્શન કરી શકો છો જેમ શબ્દમાળા વિચાર, અથવા પૂર્ણાંક વિચાર, ખરેખર પરત છે પાછા વપરાશકર્તા માટે કંઈક. ચાલો આગળ વધો અને પૂર્ણાંક મુખ્ય રદબાતલ વ્યાખ્યાયિત કરીએ. અને, ફરી, ભવિષ્યમાં, અમે પડશે સમજાવો કે પૂર્ણાંક અને તે રદબાતલ ખરેખર કરવાનું છે. પરંતુ આજે માટે, અમે પડશે તે લેવા માટે મંજૂરી આપી હતી. હું આગળ અને printf જાઓ જાઉં છું એક સારો વપરાશકર્તા અનુભવ માટે, x છે. અને પછી હું માટે રાહ જઇ રહ્યો છું વપરાશકર્તા મને વિચાર પૂર્ણાંક સાથે X આપે છે. અને પછી હું આગળ જાઓ જાઉં છું અને ચોરસ એક્સ છાપશે. તેથી જ્યારે તમે માત્ર એક જ કીબોર્ડ, સામાન્ય રીતે લોકો લિટલ ગાજર ઉપયોગ કીબોર્ડ પર પ્રતીક સત્તા પર પ્રતિનિધિત્વ , અથવા હિમાયતી. તેથી સ્ક્વેર્ડ x i હાજર છે. અને હવે હું આ કરવા જઇ રહ્યો છું. હું માત્ર શું કરી શકે એક્સ શું છે સ્ક્વેર્ડ? X સ્ક્વેર્ડ એક્સ વખત x છે. અને અમે કર્યું આ અમુક સમય પહેલા જ આજે. આ જેવી લાગે છે નથી કે બધા ખૂબ પ્રગતિ. શું તમે જાણો છો? ચાલો કે વિચાર કેટલાક લાભ દો તાત્વિક છેલ્લા સમય. તે સરસ હશે ત્યાં એક કાર્ય કહેવાય છે ચોરસ કે બરાબર છે કે કરે છે? તે હજુ પણ અંતે દિવસ, એ જ ગણિત નથી. પરંતુ ચાલો અમૂર્ત દૂર લેવાના વિચાર એક નંબર દ્વારા બહુગુણિત અન્ય, અને માત્ર તેને એક નામ આપો, જેમ આ કિંમત ચોરસ. અને, અન્ય શબ્દોમાં, માં સી, ચાલો એક કાર્ય બનાવીએ કહેવાય ચોરસ કે બરાબર છે કે જે કરે છે. તે ચોરસ કહેવાય રહ્યું છે. તે પૂર્ણાંક લાગી રહ્યું છે. અને અમે પડશે માત્ર કરશે તે n કૉલ, મૂળભૂત રીતે. પરંતુ અમે તે અમે માંગો કંઈપણ કહી શકે છે. અને બધા તે ચાલી રહ્યું છે કે શું, શાબ્દિક વળતર છે n વખત એ પરિણામ. પરંતુ તે છે, કારણ કે કંઈક પુનરાગમન કર્યું, જે જાંબલી અમે કર્યું કીવર્ડ છે પહેલાં ક્યારેય ન જોઈ, હું 11 લીટી પર, માત્ર રદબાતલ કહી શકો છો આ સમય. રદબાતલ છે, ઉદાહરણ તરીકે અમે માત્ર જોયું પ્રિન્ટ નામ બદલે, માત્ર અર્થ એ થાય, કંઈક કરવું. પરંતુ મને કંઈક પાછા ન હાથથી નથી. આ કિસ્સામાં, હું માંગો છો પાછા n વખત n એ, અથવા ગમે છે, કે જે નંબર. તેથી હું કહી શકો છો, અરે, કોમ્પ્યુટર, હું રદબાતલ કશું પરત. તે પાછા કુદરત દ્વારા, પૂર્ણાંક રહ્યું છે. અને તેથી કે જે બધા રહ્યું છે તે અહીં છે. ઇનપુટ બનાવ્યો પૂર્ણાંક હોઈ ચાલે છે. અને તેથી અમે તેનો ઉપયોગ કરી શકો છો, તે છે એક નામ છે, એન તે આઉટપુટ રહ્યું છે પૂર્ણાંક છે કે જે એક નામ જરૂર નથી. અમે તે મુખ્ય છોડી શકો છો, અથવા વિષયક છે મને ઉપયોગ કરીને આ કિંમત જો આપણે યાદ રાખવું તેના પોતાના ચલ સાથે માંગો છો. અને, ફરી, માત્ર નવા અહીં શબ્દ વળતર છે. અને હું માત્ર કેટલાક ગણિત કરી રહ્યો છું. જો હું ખરેખર બિનજરૂરી બનવા ઇચ્છે છે, હું કહી શકે પૂર્ણાંક ઉત્પાદન નહીં n વખત એન. અને પછી હું પાછો ઉત્પાદન કહી શકે. પરંતુ, ફરી, મારા બિંદુ અગાઉ આ માત્ર એ સારું design-- જેમ કે, શા માટે એક નામ દાખલ, પ્રતીક, ઉત્પાદન, જેમ માત્ર તરત જ તેને પાછા? તે થોડો ક્લીનર છે, થોડી સજ્જડ, તેથી વાત કરવા માટે, માત્ર વળતર n વખત કહે એન, એકસાથે આ વાક્ય છુટકારો મળે છે. અને તે માત્ર ઓછી વાંચવા માટે કોડ છે, ભૂલો માટે ઓછી તક. અને આ તો જોવા દો ખરેખર હવે કામ કરે છે. હવે, હું જાઉં છું આગળ અને વળતર બનાવે છે. ઉહ-ઓહ, કાર્ય ગર્ભિત ઘોષણા. હું આ ભૂલ પહેલાં કોઈ મોટો સોદો કર્યો હતો. મને માત્ર લખો, અથવા પ્રકાશિત કરો અને નકલ, ચોક્કસ જ કાર્ય પ્રોટોટાઇપ, અથવા સહી, કાર્ય અહીં. અથવા હું સમગ્ર કાર્ય વધી શકે છે. પરંતુ તે થોડો આળસુ છે. તેથી અમે તે ન કરશે. હવે, મને વળતર બનાવવા દો ફરીથી, સ્લેશ વળતર DOT. 2 એક્સ એક્સ સ્ક્વેર્ડ 4 છે. X 3. એક્સ સ્ક્વેર્ડ છે 9 છે. અને કાર્ય લાગે છે હવે કામ કરી શકે છે. તેથી શું અહીં તફાવત છે? હું એક કાર્ય છે કે ચોરસ કહેવાય છે, આ કિસ્સામાં, કે જે હું ઇનપુટ મૂકી છે. અને હું એક આઉટપુટ પાછા મળે છે. અને હજુ સુધી, પહેલાં, જો હું અન્ય ઉદાહરણ ખોલવા અગાઉ, જે prototype.c તરીકે ઓળખાતું હતું, હું પ્રિન્ટ નામ, હતી જે રદબાતલ પરત છે, તેથી વાત કરવા માટે, અથવા તે કંઈ પાછો ફર્યો, અને ફક્ત એક બાજુ અસર હતી. તેથી અહીં શું થઈ રહ્યું છે? વેલ, કાર્ય ધ્યાનમાં માત્ર એક ક્ષણ માટે શબ્દમાળા મળે છે. અમે કાર્ય ઉપયોગ કરી રહ્યો છું નીચેની રીતે શબ્દમાળા મળે છે. અમે એક કાર્ય વિચાર પડ્યું શબ્દમાળા, જેમ કે, cs50.h સમાવેશ થાય છે ધોરણ io.h, પૂર્ણાંક, મુખ્ય, ખાલીપણુ સમાવેશ થાય છે. અને પછી દર વખતે હું કર્યું આમ અત્યાર સુધી ગેટ શબ્દમાળા કહેવાય છે, હું જણાવ્યું હતું કે કર્યું કંઈક શબ્દમાળા ઓ શબ્દમાળા વિચાર નહીં કારણ કે વિચાર શબ્દમાળા આ get.c-- ગેટ શબ્દમાળા કૉલ કરો પોતે એક શબ્દમાળા આપે છે કે હું પછી કરી શકો છો વાપરવા માટે, અને હેલો, કહે છે, અલ્પવિરામ, ટકા ઓ, બેકસ્લેશ n એ, એસ. તેથી આ જ ઉદાહરણ છે, ખરેખર, આપણે પહેલાં હતી. તેથી શબ્દમાળા કિંમત આપે છે મેળવો. પરંતુ એક ક્ષણ પહેલા, પ્રિન્ટ શબ્દમાળા કિંમત પાછી નથી. તે ફક્ત એક બાજુ અસર ધરાવે છે. તેથી આ એક મૂળભૂત તફાવત છે. અમે વિવિધ જોઇ છે હવે વિધેયોને પ્રકારો, જેમાંથી કેટલાક પાછા ફર્યા છે મૂલ્યો, જે કેટલાક નથી. તેથી કદાચ તે શબ્દમાળા, અથવા પૂર્ણાંક, અથવા ફ્લોટ છે. અથવા કદાચ તે માત્ર રદબાતલ છે. અને તફાવત છે કે આ વિધેયો કે જે માહિતી મેળવવા માટે અને કિંમત પાછી ખરેખર છે કંઈક ટેબલ પર પાછા લાવી તેથી વાત કરવા માટે. તેથી આપણે આગળ જવા દો અને એક અંતિમ સેટ જોવા કે એક અર્થમાં આપે છે, હવે, ઉદાહરણો કેવી રીતે અમે કદાચ, ખરેખર, અમૂર્ત સારું, અને વધુ સારી રીતે, અને વધુ સારી, અથવા વધુ, અને વધુ અને વધુ, ક્રમમાં લખવા માટે આખરે, સારી કોડ. ચાલો આગળ વધો, અને આત્મા માં દો સ્ક્રેચ, નીચે પ્રમાણે કરો. મને આગળ વધો અને સમાવેશ થાય છે દો Cs50.h અને ધોરણ io.h. મને આગળ વધો અને આપી દો મારી પૂર્ણાંક, મુખ્ય, ખાલીપણુ. અને મને આગળ જાઓ, આ cough.c કૉલ કરો. અને મને આગળ અને માત્ર જવા દો સ્ક્રેચ જેમ, ઉધરસ / એન બહાર છાપો. અને હું આ ત્રણ વખત કરવા માંગો છો. તેથી હું છું, અલબત્ત, માત્ર ચાલુ નકલ અને ત્રણ વખત પેસ્ટ કરો. હવે હું બનાવવા જઈ રહ્યો છું કોઈ સ્લેશ ઉધરસ ઉધરસ. માતાનો મારી જાતને થોડી વધુ જગ્યા આપી દો અહીં, દાખલ કરો, ઉધરસ, ઉધરસ, ઉધરસ. ત્યાં છે, દેખીતી રીતે, પહેલેથી જ એક સુધારણા માટે તક. હું નકલ અને પેસ્ટ કર્યું આજે મેં થોડા વખત. પરંતુ તે માત્ર હતી તેથી હું ન હતી ઘણા અક્ષરો ટાઇપ કરવા માટે હોય છે. હું હજુ પણ બદલી શું કોડ તે રેખાઓ છે. આ ત્રણ રેખાઓ સમાન છે જે બેકાર લાગે છે અને ખરેખર છે અને કદાચ અધિકાર અભિગમ નથી. શું ઘટક તેથી અમે આ કોડ સુધારવા શકે? અમે નકલ અને પેસ્ટ કોડ નથી. અને, ખરેખર, કોઈપણ સમયે તમને લાગે જાતે નકલ અને પેસ્ટ, અને તે પણ કોડ બદલાતી નથી, મતભેદ છે ત્યાં એક સારી રીત છે છે. અને, ખરેખર, ત્યાં છે. મને આગળ વધો અને લૂપ માટે શું કરવું, છતાં પણ વાક્યરચના કદાચ કુદરતી હજુ સુધી આવે છે. આ ત્રણ વખત કરો, ખાલી નીચેના કરવાથી અને હું પ્રેક્ટિસ આ ખબર થાય છે. પરંતુ હવે અમે ઉદાહરણો એક નંબર હોય. અને તમે ઑનલાઇન જોશો હજુ પણ વધુ સંદર્ભો. આ લીટી 6 પર વાક્યરચના છે કે ખૂબ શરૂઆતથી કે રટણ જેવા બ્લોક, નીચેની ત્રણ વખત પુનરાવર્તન કરો. તે હવે થોડી જાદુઈ છે. પરંતુ આ વધારે મળશે, અને વધુ પરિચિત. અને તે પુનરાવર્તન કરવા જઈ રહ્યું છે રેખા આઠ ત્રણ વખત, જેથી જો હું ફરીથી કમ્પાઈલ કરવા ઉધરસ, કોઈ સ્લેશ ઉધરસ, ઉધરસ, ઉધરસ, ઉધરસ. તે હજુ પણ એ જ રીતે કામ કરે છે. તેથી તે બધા દંડ અને સારી છે. પરંતુ તે ખૂબ જ શૂન્યમનસ્ક નથી. તે સંપૂર્ણપણે સાચું છે. પરંતુ તે ત્યાં જેવી લાગે છે તક હોઈ શકે છે, વિશ્વમાં તરીકે સ્ક્રેચ, પ્રારંભ પ્રકારની જેથી કેટલાક સીમેન્ટિક્સ અહીં ઉમેરવા માટે હું માત્ર લૂપ માટે કેટલાક નથી, અને એક કાર્ય છે કે જે કહે ઉધરસ, અથવા ઉધરસ નથી. શું તમે જાણો છો? મને એક હોઈ કરવાનો પ્રયાસ કરીએ કરતાં ઓછી ઠંડી, અને ખરેખર કાર્ય લખે છે કે, કેટલીક આડઅસરો ધરાવે છે, તે ઉધરસ કૉલ કરો. અને તે કોઈ ઇનપુટ લે છે, અને આઉટપુટ તરીકે કોઈ કિંમત આપે છે. પરંતુ તમને ખબર છે તે શું કરે છે? તે છે આ printf કરે છે, ભાવ અવતરણ ચિહ્નો પૂરાં કરવાં, ઉધરસ. અને હવે અહીં, હું જાઉં છું આગળ અને પૂર્ણાંક માટે જાઓ, હું શૂન્ય હું વત્તા વત્તા નહીં, હું કરતાં ઓછી 3. હું printf નથી છે, જે જાઉં છું દલીલ નીચા સ્તર અમલીકરણ વિગતવાર. હું પડી નથી કે કેવી રીતે ઉધરસ માટે. હું માત્ર ઉધરસ કાર્ય વાપરવા માંગો છો. અને હું માત્ર ઉધરસ કૉલ જાઉં છું. હવે, બંને જૂથના નોટિસ. જ્યારે તમે એક કાર્ય કૉલ, જો તમે ન કરતા તે ઇનપુટ્સ, સંપૂર્ણપણે દંડ આપવા માંગો છો. જસ્ટ ઓપન કૌંસ, બંધ કરવું કૌંસ, અને તમે પૂર્ણ કરી રહ્યાં છો. જ્યારે તમે એક કાર્ય વ્યાખ્યાયિત, અથવા એક કાર્ય પ્રોટોટાઇપ જાહેર, જો તમે અગાઉથી ખબર છે કે તે નથી કોઇ દલીલો લઇ જતા, ત્યાં તે કૌંસ માં રદબાતલ કહે છે. અને તે ચોક્કસ છે કે તમે આકસ્મિક તે દુરુપયોગ નહીં. મને આગળ વધો અને ઉધરસ બનાવવા દો. અને, અલબત્ત, હું એક ભૂલ કરી છે. Dammit, ત્યાં છે કે ગર્ભિત ઘોષણા. પરંતુ તે દંડ છે. તે એક સરળ સુધારો છે. હું માત્ર પ્રોટોટાઇપ વધારે જરૂર મારા ફાઈલ કરતાં હું ખરેખર તે ઉપયોગ કરું છું. તેથી હવે મને ઉધરસ ફરી, સરસ બનાવીએ. હવે, તે કામ કરે છે. ઉધરસ, ઉધરસ, ઉધરસ, ઉધરસ બનાવો. તેથી તમને લાગે છે કે અમે ખરેખર છો માત્ર આ સમસ્યા એન્જિનિયરિંગ. અને, ખરેખર, અમે છે. આ એક સારી નથી કાર્યક્રમની ઉમેદવાર માટે ક્ષણે રિફેક્ટરિંગને, અને આમ શું અધિક્રમિક વિઘટન કહેવાય છે, જ્યાં તમે અમુક કોડ લે છે, અને પછી તમે પ્રકારની પરિબળ વસ્તુઓ બહાર, જેથી તેમને વધુ સીમેન્ટિક્સ કારણભૂત ગણવામાં આવી હોય, અને તે આખરે લાંબા ગાળાના પુનઃઉપયોગ. પરંતુ તે તરફ એક મકાન બ્લોક છે વધુ વ્યવહારદક્ષ કાર્યક્રમો કે અમે શરૂ કરશે પહેલાં લાંબા લખી અમને શબ્દભંડોળ માટે પરવાનગી આપે છે જે સાથે વધુ કોડ લખવા માટે. અને, ખરેખર, ચાલો જોવા અમે આ વધુ સામાન્ય નથી કરી શકો છો. તે થોડો નબળું લાગે છે કે હું, મુખ્ય, લૂપ માટે આ રફૂ કરવું વિશે ચિંતા કરવાની જરૂર છે, અને ફરીથી અને ફરીથી ઉધરસ કહે છે. મેં હમણાં જ કેમ ઉધરસ કહી શકો છો, ત્રણ વખત ખોખલો કૃપા કરીને? બીજા શબ્દોમાં કહીએ તો, શા માટે હું નથી કરી શકો છો ફક્ત ઉધરસ અને આ કરવા માટે ઇનપુટ આપે છે? હું માત્ર શા માટે કહી શકો છો, માં મુખ્ય ઉધરસ ત્રણ વખત. અને હવે, આ પ્રકારની જાદુઈ છે. અહીં ખૂબ જ પુનરાવર્તન છે. અને તે એક બાળક પગલું છે, ખરેખર. પરંતુ માત્ર ક્ષમતા પર કહે છે રેખા આઠ, ત્રણ વખત ખોખલો, તે માત્ર જેથી વધુ વાંચનીય છે. અને, વત્તા, મને ખબર છે કે નથી અથવા કાળજી કેવી રીતે ઉધરસ અમલમાં મૂકાયેલ છે. અને, ખરેખર, પાછળથી શબ્દ અને અંતિમ પ્રોજેક્ટ માટે, તમારી સાથે એક પ્રોજેક્ટ હલ તો એક સહાધ્યાયી અથવા બે સહપાઠીઓને, તમે સમજો કે તમે જઈ રહ્યાં છો હોય છે, અથવા, કામ વહેંચી કરવા માંગો છો. અને તમે નક્કી કરવા માંગો છો જઈ રહ્યાં છો અગાઉથી, જે શું ચાલી રહ્યું છે, અને જે ટુકડાઓમાં? અને તે સરસ હશે જો તમે, ઉદાહરણ તરીકે, મુખ્ય લેખન ચાર્જ કરવામાં આવે છે લે છે. અને તમારા રૂમમેટ, અથવા તમારા ભાગીદાર વધુ સામાન્ય રીતે, ઉધરસ અમલીકરણ કાળજી લે છે. અને આ વિભાગ, આ તાત્વિક દિવાલો, અથવા જો તાત્વિક સ્તરો તમે કરશે, સુપર શક્તિશાળી છે ખાસ કરીને મોટા માટે કારણ કે, વધુ જટિલ કાર્યક્રમો અને સિસ્ટમો, તે ઘણા લોકોને બીલ્ડ કરવા માટે પરવાનગી આપે છે વસ્તુઓ એકસાથે, અને છેવટે તેમના કામ સાથે મળીને ભાતનો ટાંકો આ રીતે. પરંતુ, અલબત્ત, અમે હવે ઉધરસ સુધારવા માટે જરૂર છે. અમે ઉધરસ કહેવું જરૂર કે, અરે, તમે શું જાણો છો? તમે એક લેવાની જરૂર જઈ રહ્યાં છો ઇનપુટ તેથી રદબાતલ નથી, પરંતુ પૂર્ણાંક અને હવે. ચાલો આગળ વધો અને મા મુકીએ પૂર્ણાંક ઉધરસ. હું શૂન્ય નહીં. હું કેવી રીતે ઘણી વખત કરતાં ઓછી છે. હું પહેલાં ત્રણ જણાવ્યું હતું. પરંતુ હું શું કરવા માંગો છો નથી. હું સામાન્ય કરવાની ઉધરસ માંગો છો iterations કોઈપણ નંબર આધાર આપે છે. તેથી, ખરેખર, તે એ છે કે હું માંગો છો, ગમે વપરાશકર્તા મને કહે છે. હવે, હું આગળ વધો અને કહે પ્રિન્ટ ઉધરસ કરી શકો છો. અને કોઈ બાબત શું નંબર વપરાશકર્તા થાય છે, હું ઘણી વખત ફરી વળવું પડશે. દિવસ ઓવરને અંતે તેથી, કાર્યક્રમ સમાન છે. પરંતુ આ સામગ્રી બધી નોટિસ પણ બીજી ફાઇલ હોઈ શકે છે. ખરેખર, હું ખબર નથી ક્ષણ કેવી રીતે printf અમલમાં મૂકાયેલ છે. હું આ ક્ષણે કેવી રીતે ખબર નથી મળી શબ્દમાળા, અથવા પૂર્ણાંક વિચાર, અથવા ફ્લોટ વિચાર લાગુ પાડવામાં આવે છે. અને હું કરવા માંગો છો નથી મારા સ્ક્રીન પર તેમને જુઓ. કારણ કે તે છે, હું પર ધ્યાન કેન્દ્રિત કરવા માટે શરૂ કરું છું મારા કાર્યક્રમ નથી, તે કાર્ય કરે છે. અને તેથી, ખરેખર, જલદી તમે આ જેમ કોડ બહાર ફેક્ટરિંગના શરૂ કરવા માટે, અમે પણ ઉધરસ ફરી શકે એક અલગ ફાઇલ કરવા માટે? બીજા કોઇએ તે અમલ કરી શકે છે. અને તમે અને તમારા કાર્યક્રમ બની ખૂબ જ સુંદર, અને ખૂબ જ વાંચી શકાય છે, તાર્કિક, ખરેખર ચાર વાક્ય કાર્યક્રમ અધિકાર ત્યાં. તેથી હવે આગળ જવા દો અને એક વધુ ફેરફાર કરે છે. નોંધ કરો કે મારા પ્રોટોટાઇપ ઉપર બદલવા માટે છે. તેથી મને કે જેથી ઠીક કરીએ હું અંતે yelled મળી નથી. ઉધરસ કરો, મને ઉધરસ એક વખત ચલાવો વધુ, હજુ પણ એ જ વસ્તુ કરી. પરંતુ હવે, નોટિસ અમે એક છે એક અંતિમ આવૃત્તિ માટે ઘટક. શું તમે જાણો છો? હું નથી માત્ર ખોખલો, જરૂરી માંગો છો. હું કંઈક વધુ સામાન્ય હોય છે કરવા માંગો છો. તેથી તમે શું જાણો છો? હું આ કરવા માંગો છો. હું હોય છે, ખૂબ શરૂઆતથી જેવા માંગો છો કરે છે એક વાત કહો બ્લોક, પરંતુ માત્ર કંઈક કહે છે વખત અમુક સંખ્યા. હું તે ખૂબ જ ચોક્કસ શબ્દમાળા કહી માંગો છો. અને, તેથી, હું નથી માંગો છો તે ફક્ત ઉધરસ કહે છે. હું તે કહેવું કરવા માંગો છો ગમે શબ્દમાળા માં પસાર થાય છે. તેથી નોંધ્યું છે, હું સામાન્ય કર્યું આ તેથી હવે કહે એક સારા નામ જેવી લાગે છે આ માટે, સ્ક્રેચ જેમ, સ્ક્રેચ વિપરીત બે દલીલો લે છે. એક શબ્દમાળા છે. એક પૂર્ણાંક છે. અને હું તેમને સ્વિચ કરી શકે છે. હું માત્ર પ્રકારની વિચાર જેવા કહે છે શબ્દમાળા પ્રથમ, અને પછી કેટલા પછીના સમયમાં. રદબાતલ તે હજુ પણ એનો અર્થ એ થાય કંઈપણ નહિં આપે. આ માત્ર દ્રશ્ય બાજુ છે અસરો, સાથે [જેવું? જોર્ડન?] yelling એક મૌખિક બાજુ અસર. તે હજુ પણ કંઈક n વખત કરે છે સુધી 0, પરંતુ એ બરાબર નથી. આ N કુલ વખત થાય છે. અને પછી માત્ર છાપે કે જે શબ્દમાળા છે. તેથી હું ખરેખર સામાન્ય છે કોડ આ વાક્ય. તેથી હવે, હું કેવી રીતે અમલ કરી શકું ઉધરસ કાર્ય? હું રદબાતલ ઉધરસ કરી શકો છો. અને હું હજુ પણ કેવી રીતે લઇ શકે છે ઘણી વખત તમે ખોખલો કરવા માંગો છો. પરંતુ તમે શું જાણો છો? હવે હું કહી પંટ કરી શકો છો. હું કહી કૉલ કરી શકો છો શબ્દ ઉધરસ, એ પસાર. અને હું પણ અમલ કરવા માંગો છો, તો માત્ર આનંદ માટે, એક સ્નીઝ કાર્ય, હું વખત અમુક નંબર છીંક કરી શકો છો. અને હું એ વારંવાર ઉપયોગ રાખી શકો છો, કારણ કે આ સંદર્ભમાં અથવા અવકાશ એમ નોટિસ આ કાર્ય અંદર માત્ર અસ્તિત્વમાં છે. અને એન આ સંદર્ભમાં માત્ર આ કાર્ય અહીં હાજર હોય છે. તેથી અમે પાછા આવો પડશે અવકાશ આ મુદ્દાઓ. અને અહીં, હું માત્ર કહે છે જઇ રહ્યો છું, achoo, અને પછી n વખત, અર્ધવિરામ. અને હવે, હું હમણાં જ ઉધાર જરૂર આ કાર્ય અહીં સહીઓ. તેથી ઉધરસ યોગ્ય છે. રદબાતલ સ્નીઝ હવે યોગ્ય છે. અને હું હજુ પણ માત્ર કહે છે જરૂર છે. તેથી હું કહું છું, કહેવું જાઉં છું શબ્દમાળા ઓ, પૂર્ણાંક n એ, અર્ધવિરામ. તેથી હું વધુ યોજિત છે આ કાર્યક્રમ હેક બહાર. અને આ નથી જરૂરી અર્થ આ છે તમે શું કરવું જોઈએ જ્યારે લેખન પણ કાર્યક્રમો સરળ. દેખીતી રીતે છે કંઈક લેવા ખરેખર સરળ છે, ખરેખર ટૂંકી છે, અને તે ફરીથી અમલમાં રસ્તો ખૂબ જ કોડ મદદથી. પરંતુ તમે ખરેખર જોશો, અને સમય, આ ઉદાહરણો પર પાછા જોવા અને સમજો, ઓહ, તે પગલાંઓ છે અમે ખરેખર સામાન્ય લીધો કંઈક બહાર અવયવો, દિવસ ઓવરને અંતે સુધી મારી કોડ વાસ્તવમાં ખૂબ વાજબી છે. કારણ કે જો હું ત્રણ ખોખલો કરવા માંગો છો વખત પછી ત્રણ વખત છીંક, હું ફક્ત આ પુનઃ ચલાવો જાઉં છું કાર્યક્રમ ઉધરસ બનાવે છે, અને ઉધરસ ચલાવો. અને હું ત્રણ કફ હોય અને ત્રણ છીંક. અને તેથી આ એક મૂળભૂત છે નમૂનારૂપ, તમે કરશે જો, કેવી રીતે અમે વિશે જાઓ શકે છે માટે ખરેખર એક કાર્યક્રમ અમલીકરણ. પરંતુ માત્ર દો જોઈ તે શું હવે છે અમે આ સમયે બધા કરી રહ્યો છું અને શું અંતિમ ટુકડાઓ કેટલાક આ સરળ આદેશ પાછળ છે. દિવસ ના અંતે, અમે કરેલા અમારા કમ્પાઇલર તરીકે રણકાર મદદથી કરવામાં આવી છે. અમે સ્ત્રોત લેખન કર્યું કોડ છે, તે રૂપાંતર મશીન કોડમાં રણકાર મારફતે. અને અમે હમણાં જ બનાવો ઉપયોગ કરી રહ્યો છું અમારા કીસ્ટ્રોક જેથી સુવિધા અમે યાદ કરવાની જરૂર નથી કે રણકાર પોતાને તે અવતારો. પરંતુ શું ખરેખર બનાવો કરી છે? અને, વળાંક, શું છે રણકાર ખરેખર કરી? તે બહાર વળે છે, છતાં અમે સરળ છે કહેતા આજે ચર્ચા, તમે સ્ત્રોત કોડ લે છે, કારણ કે તે પસાર કમ્પાઇલર, કે જે તમને આપે ઇનપુટ મશીન આઉટપુટ કોડ છે, ત્યાં બહાર વળે ત્યાં અંદર થોડા અલગ પગલાંઓ. અને સંકલન છત્ર બને છે પગલાંઓ સમગ્ર ટોળું માટે શબ્દ. પરંતુ માત્ર પીંજવું દો આ ખરેખર ઝડપથી. તે તારણ છે કે અમે આમ કરવામાં આવ્યા છે વધુ વસ્તુઓ દર વખતે હું એક કાર્યક્રમ ચલાવવા માટે, અથવા દર વખતે હું આજે કાર્યક્રમ કમ્પાઇલ. તેથી preprocessing ઉલ્લેખ કરે છે એક સી કાર્યક્રમ કંઈપણ છે આ, કારણ કે અમે ફરીથી અને ફરીથી જોશો, કે, આ હેશ પ્રતીક સાથે શરૂ થાય છે અથવા hashtag અહીં પ્રતીક છે, જેનો અર્થ તે preprocessor ડાઈરેક્ટીવ છે. તેનો અર્થ એ કે, આ કિસ્સામાં, અરે કોમ્પ્યુટર, આ ફાઇલ સાથે કંઈક પહેલાં તમે ખરેખર મારા પોતાના કોડ કમ્પાઇલ. આ કિસ્સામાં, હેશ સમાવેશ થાય છે, આવશ્યકપણે, કહેતા સી રીતે, અરે કોમ્પ્યુટર, સમાવિષ્ટો મેળવી જાઓ Cs50.h ની અને તેમને અહીં પેસ્ટ કરો. અરે કોમ્પ્યુટર, વિચાર જાઓ ધોરણ io.h સમાવિષ્ટો, ત્યાં તે પર છે હાર્ડ ડ્રાઈવ, તે અહીં પેસ્ટ કરો. તેથી તે વસ્તુઓ થાય છે preprocessing દરમિયાન પ્રથમ. અને રણકાર અમારા માટે આ બધા કરે છે. અને તે ખૂબ રફૂ કરે ઝડપી, તમે પણ નથી શું થઈ રહ્યું ચાર અલગ વસ્તુઓ જુઓ. પરંતુ તે આ પ્રકારનું પ્રથમ પગલું છે. શું ખરેખર થાય છે? વેલ, આગામી સત્તાવાર પગલું સંકલન છે. અને તે તારણ છે કે એક કાર્યક્રમ સંકલન તકનીકી ના જતા અર્થ એ થાય સ્રોત કોડ, સામગ્રી અમે કર્યું આવી કંઈક, આજે લખવાનું વિધાનસભા કોડ તરીકે ઓળખાય છે, કંઈક કે થોડી અલગ લાગે છે. અને હકીકતમાં, અમે આ વાસ્તવિક ઝડપી જોઈ શકો છો. મારા માટે ખરેખર મારા IDE માં જવા દો. મને આગળ અને ઓપન hello.c જવા દો, જે ખૂબ પ્રથમ કાર્યક્રમ છે કે જેની સાથે આપણે આજે શરૂ કર્યું હતું. અને મને આગળ વધો અને રણકાર એક ચલાવો થોડી અલગ, રણકાર-S, hello.c છે, જે વાસ્તવમાં રહ્યું છે મને બીજી ફાઇલ hello.s આપે છે. અને અમે ક્યારેય કદાચ ફરીથી કોડ આ પ્રકારની જુઓ. તમે નીચા સ્તરે લઇ જો CS61 જેવા સિસ્ટમો વર્ગ, તમે પુષ્કળ વધુ જોશો કોડ આ પ્રકારની. પરંતુ આ એસેમ્બલી ભાષા છે. આ X86 એસેમ્બલી ભાષા છે કે સીપીયુ કે અંતર્ગત છે CS50 IDE ખરેખર સમજે છે. અને ભેદી તે કરે છે જુઓ, તે કંઈક છે કમ્પ્યુટર ખૂબ સારી રીતે સમજે છે. સબ સ, આ એક સબ્ટ્રેક્ટ છે. ત્યાં હલનચલન છે. ત્યાં કાર્યો અહીં ફોન છે, X ORING, એક આંદોલન છે, એક ઉમેરો, એક પૉપ, વળતર. કેટલાક લોકો તો ત્યાં ખૂબ જ નીચા સ્તરે સૂચનો સીપીયુ કે સમજે છે કે હું અગાઉ સંકેત આપ્યો છે. કે શું ઇન્ટેલ ઇનસાઇડ છે. ત્યાં પેટર્ન હોય છે zeros અને મુદ્દાઓ કે આ arcanely શબ્દોમાં નકશો, પરંતુ કંઈક અંશે સારી નામ આપવામાં આવ્યું, સૂચનો, તેથી વાત કરવા માટે. કે શું થાય છે જ્યારે તમે તમારા કોડ કમ્પાઇલ. તમે વિધાનસભા મળી તે બહાર ભાષા છે, જે એનો અર્થ એ થાય ત્રીજા પગલું ભેગા છે કે વિધાનસભા કોડ માં, છેવટે, મશીન code-- zeros અને મુદ્દાઓ નથી લખાણ છે કે અમે માત્ર એક ક્ષણ પહેલા જોયું. તેથી પૂર્વ પ્રક્રિયા કે શોધી નથી અને બદલો, અને થોડા અન્ય વસ્તુઓ. સંકલન તમારા સ્રોત લે સી ના કોડ, સ્ત્રોત કોડ અમે લખ્યું હતું કે, વિધાનસભા કોડ કે અમે માત્ર એક નજર નાખી. એસેમ્બલ વિધાનસભા લે zeroes અને મુદ્દાઓ માટે કોડ કે CPU ખરેખર ચાલશે દિવસ ઓવરને અંતે સમજે છે. અને જોડે છેલ્લા પગલું છે કે us-- માટે ફરીથી થાય છે, જેથી ઝડપી અમે પણ નથી સૂચના કહે છે કે, અરે કોમ્પ્યુટર, બધા લેવા zeros અને મુદ્દાઓ કે દાઉદના કોડ સંકલન પરિણામે, અને આ કિસ્સામાં તેના મુખ્ય કાર્ય. અને હે કોમ્પ્યુટર, વિચાર જાઓ zeros અને શૈલીઓનો બધા કે CS50 સ્ટાફ લખ્યું CS50 પુસ્તકાલય અંદર. ડેવિડ સાથે તે ભેગા કરો. અને હે કોમ્પ્યુટર, બધા zeros વિચાર જાઓ અને કોઈના વર્ષ લખ્યું છે કે રાશિઓ પહેલાં printf છે. અને માં તે ઉમેરો સમગ્ર બાબત છે, કે જેથી અમે કર્યું મારા zeros અને મુદ્દાઓ, મળી CS50 સ્ટાફ zeros અને મુદ્દાઓ, printf zeros અને મુદ્દાઓ, અને જે કંઈપણ અમે ઉપયોગ કરી રહ્યાં છો. તેઓ બધા એક માં મળીને સંયુક્ત મળી કાર્યક્રમ કહેવાય છે આ કિસ્સામાં, હેલો. માત્ર જેથી અત્યારથી, અમે શબ્દ કમ્પાઇલ ઉપયોગ કરે છે. અને અમે મંજૂર માટે લઈ જશે કે જ્યારે આપણે કહીએ કે, તમારા કાર્યક્રમ કમ્પાઇલ, તે અર્થ થાય છે, અરે પૂર્વ પ્રક્રિયા કરવા માટે, એસેમ્બલ, અને જોડે છે. પરંતુ ત્યાં ખરેખર કેટલાક રસદાર સામગ્રી છે હૂડ નીચે ત્યાં રહ્યું. અને ખાસ કરીને જો તમે વિચિત્ર કેટલાક સમય વિચાર, તમે poking શરૂ કરી શકો છો આ નીચા સ્તરે આસપાસ. પરંતુ હવે માટે, કે જે ખ્યાલ આજે ટેકઅવે વચ્ચે તદ્દન ખાલી પ્રક્રિયા શરૂ, સાથે આરામદાયક મેળવવાની હેલો વર્લ્ડ કંઈક. ખરેખર, આજે આપણે શું કર્યું સૌથી ચોક્કસપણે સુપર ફાસ્ટ ડુબી નહીં. અને તે કેટલીક લેશે સમય, અને કેટલાક અભ્યાસ. અને મતભેદ હોય, તો તમે સૉર્ટ કરશે તમારા કીબોર્ડ હિટ કરવા માંગો છો અથવા સ્ક્રીન પર કિકિયારી. અને તે તમામ બરાબર છે. જોકે, કદાચ નથી પ્રયાસ કરો પુસ્તકાલય તે ખૂબ જ નથી. અને આખરે, તમે પડશે જોકે કરવાનો પ્રયત્ન કરશે, શરૂ કરવા માટે પેટર્ન જોઈ, બંને સારા કોડ માં તમે તેવા પરચૂરણ ખર્ચ કર્યો છે અને ભૂલો માં તમે કરેલા છે. અને ખૂબ પ્રક્રિયા જેવી એક ટીએફ બની અથવા CA જેવું છે, તમે વધુ સારી રીતે મળી શરૂ કરી શકશો અને તે પેટર્ન જોઈ સારી, અને માત્ર તમારા ઉકેલવા આખરે પોતાના સમસ્યાઓ. આ દરમિયાન, ત્યાં પુષ્કળ હશે અમને તમે આધાર ધીરે છે, અને તમે વિચાર આ દ્વારા. અને લખી-અપ્સ સમસ્યાઓ તમામ માટે તમે મારફતે માર્ગદર્શન આપવામાં આવશે બધા આદેશો હું ચોક્કસપણે પરથી જાણીએ છીએ કે હવે અભ્યાસ ઘણો, પરંતુ ઉડ્યા શકે હવે એક માથા ઉપર. અને તે સંપૂર્ણપણે દંડ છે. પરંતુ, આખરે, તમે જઈ રહ્યાં છો પેટર્ન ભેગી જોવા માટે શરૂ કરો. અને એકવાર તમે બધા ભૂતકાળમાં મળી મૂર્ખ વિગતો, કૌંસ, જેમ અને સર્પાકાર કૌંસ, અને અર્ધ કોલોન ':', અને સામગ્રી, પ્રમાણિકપણે, કે બધા નથી બુદ્ધિપૂર્વક રસપ્રદ. અને તે હેતુ નથી કોઈપણ પ્રારંભિક વર્ગ લેતી. તે વિચારો કે વાંધો જતા હોય છે. તે આંટીઓ છે, અને શરતો, અને કાર્યો, અને વધુ શક્તિશાળી તાત્વિક, અને કોડ ઓફ ફેક્ટરિંગના, અને સારી ડિઝાઇન, અને સારા શૈલી, અને છેવટે ચોકસાઈ તમારો કોડ છે, કે જે આખરે છે સૌથી મહત્વપૂર્ણ જઈ રહી છે. તેથી આગામી અઠવાડિયે, અમે આ લેશે વિચારો કે અમે પ્રથમ સ્ક્રેચ માં જોયું અને હવે અનુવાદ સી અને અમે શરૂ કરી શકશો પ્રથમ રજૂ કરવા અલબત્ત વાસ્તવિક વિશ્વમાં ડોમેન્સ. અમે સુરક્ષા વિશ્વમાં પર ધ્યાન કેન્દ્રિત પડશે અને વધુ ચોક્કસ સંકેતલિપી, માહિતી મૂંઝાયેલું ઓફ આર્ટ. પ્રથમ વચ્ચે અને તમે સમસ્યાઓ જાતે બહાર લખવા માટે વિચાર કરશે વાક્યરચના કેટલાક સાથે રમવાની અને કેટલાક તાર્કિક ઉકેલવા સમસ્યાઓ, આખરે લાંબા પહેલાં, ખરેખર ભાંખોડિયાંભર થઈને છે, અથવા એનક્રિપ્ટ, અને આખરે માહિતી ડિક્રિપ્ટ. અને બધું અમે કર્યું છે આજે, એકદમ નીચા કરશે સ્તર, માત્ર પરવાનગી રહ્યું છે અમને એક છે, અને એક લેવા માટે, અને ઉપર તરફ એક વધુ પગલું હજી સુધી સૌથી વધુ રસપ્રદ કોડ લખી. જેથી આગામી સપ્તાહ પર વધુ. [વિડિઓ પ્લેબેક] -શું તમે મને વિશે કહી શકે છે છેલ્લા સમય તમે તેને જોયો? -શું હું ખરેખર કહી શકો છો? હું તેનો અર્થ, તે અન્ય કોઇ જેવી હતી પ્રી-પ્રોડક્શન રિહર્સલ, સિવાય ત્યાં કંઈક હતું તેમણે જણાવ્યું હતું કે ખૂબ જ અંત છે કે મારી સાથે અટવાઇ છે. -આ CS50 હતી. એટલે કટ દરેકને, રિહર્સલ પર મહાન કામ. એટલે બપોરના? અરે વાહ, તમે અને હું કરી શકો છો એક બીટ માં સેન્ડવીચ ગ્રેબ. મને માત્ર સાથે debrief દો ડેવિડ ખરેખર ઝડપથી. ડેવિડ? ડેવિડ? [સમાપ્ત પ્લેબેક]