[Powered by Google Translate] [7 અઠવાડિયું] [ડેવિડ જે Malan - હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે. - CS50.TV] અધિકાર છે. ફરી સ્વાગત છે. આ CS50 છે, અને આ 7 સપ્તાહ શરૂઆત છે. થોડી જાહેરાતો એક દંપતી: Pset5 પ્રોગ્રેસ હવે હોય, અથવા ટૂંક રહેશે, દો અને મને કહે, તદ્દન પ્રામાણિકપણે, આ માટે વધુ પડકારરૂપ વચ્ચે હોય છે નથી આ કોર્સ સમસ્યા સમૂહોના, તેથી દો મને ઉલ્લેખ હવે આ જેથી આ સપ્તાહ કરતાં વધારે ક્યારેય તમે ત્યાં સુધી રાહ જોવી ન શકું, જેમ કે, બુધવારે રાત્રે અથવા ગુરુવાર રાત સાઇન ડાઇવ માટે આ ચોક્કસપણે એક રસપ્રદ pset છે. અમને લાગે છે મજા છે. જો તમે વાસ્તવમાં તે સંપૂર્ણપણે સાચું વિચાર અને પછી કહેવાતા મોટા બોર્ડ પડકાર કરી શકે છે, તમે આ કોર્સ સ્ટાફ કેટલાક wits સાથે મેળ કરવાની તક મળશે અને તમારા સહપાઠીઓને કેટલાક. ધ બીગ બોર્ડ છે શું છે એકવાર તમે તમારા કામ જોડણી-પરીક્ષક હોય છે, તમે આદેશ ચલાવ્યા પછી cs50.net પર જાઓ કરી શકશો, કેવળ પસંદ કરો, અને પછી સમય જથ્થો અને RAM નો જથ્થો છે અને વધુ તમે તમારા અમલીકરણ માં ઉપયોગ કર્યો છે કે જે અભ્યાસક્રમ હોમ પેજ પર અહીં પ્રદર્શિત થશે. તમે ધ્યાન પડશે કે આ અહીં લોકો સંપૂર્ણ જથ્થો સ્ટાફ તરીકે યાદી થયેલ છે સપ્તાહના અંતે કારણ કે સ્ટાફ વિચાર્યું તે માટે દરેક અન્ય outdo પ્રયાસ મજા હોઈ શકે છે. જેથી ખ્યાલ છે કે અહીં ધ્યેય સ્ટાફ outdo નથી. પણ હું 13 નંબર પર માત્ર અહીં છું. કેવળ પસંદ છે, પરંતુ તે જોવા માટે તક છે માત્ર થોડી રેમ કેવી રીતે અને થોડા કેવી રીતે સીપીયુ સેકન્ડો તમે સામસામે તમારા સહપાઠીઓને કેટલાક વાપરી શકો છો. અને મને તે કેપી માઈકલ સ્ચમિડ સ્વીકાર્યું પડશે, હાલમાં નંબર એક TFs એક તરીકે 1 સ્થિતિમાં, આ અમલીકરણ કરે છે કે અમે શક્ય નથી કહી છે આપેલ છે કે તેઓ લોડ માટે 0 લગભગ રેમ અને 0 લગભગ સેકન્ડ મદદથી છે. તેથી અમે કેપી ઑફલાઇન કાળજી લેવા પડશે. [અટ્ટહાસ્ય] ત્યાં અમુક કુશળતા કે કેપી પરીક્ષણ માટે મૂકી છે અહીં છે. એક વસ્તુઓ અમે વિચાર્યું અમે છો એક ખૂબ હવે CS50x પ્રોગ્રેસ એક સપ્તાહ છે, અને તમે ગાય્સ તેટલી આ પ્રયોગ પેલા વિદ્યાર્થીઓ છે એક ભાગ છે. અમે તેમને તેમના pset0 ભાગ તરીકે પૂછ્યું છે, કે જે એ જ રીતે હતું સ્ક્રેચ પ્રોજેક્ટ સબમિટ તેમના માટે રસ - એક રમત, કલા એક ઇન્ટરેક્ટિવ ટુકડો, એનિમેશન, અથવા જેમ - એક 1 - 2-મિનિટની વિડિઓ, જો તેઓ ગમે, વિશ્વ હેલ્લો કહેતા અને જેઓ કરશે તેઓ ખરેખર છે. મેં વિચાર્યું કે મારે તમારી સાથે માત્ર થોડી વિડિઓઝ છે કે આમ અત્યાર સુધી સબમિટ કરવામાં આવ્યાં છે શેર છો કારણ કે અમને માટે, સ્ટાફ પર ઓછામાં ઓછા છે, તે ખરેખર આકર્ષક રહી છે અને સમગ્ર વિશ્વમાં પર આ લોકો જોઈ પ્રેરણાદાયી - વિશ્વના તમામ દેશોમાં - માં ટ્યુનિંગ, બધા વસ્તુઓ ઇન્ટરનેટ પર એક કોમ્પ્યુટર વિજ્ઞાન અભ્યાસક્રમ માટે, શું તે કારણે તેઓ તેમના અભ્યાસ ચાલુ રાખવા માંગો છો છે, તેઓ એક નવી દિશામાં તેમની કારકિર્દીની લેવા માંગતા હોય તો, તેઓ તેમની પોતાની જ્ઞાન માં ગાબડા ભરો માંગો છો, આ જ કારણોસર કે તમે ગાય્સ કદાચ અહીં આવ્યા છે કેટલાંક. તેથી હું તમને આવા એક વિદ્યાર્થી અહીં આપો. તમે વોલ્યુમ માત્ર થોડો ઊંચો લાવી શક્યા હોત. અહીં એક અમારા વિદ્યાર્થી 1-મિનિટ સબમિશન્સ છે. હેલો, વિશ્વ. હું માલ્ગા, સ્પેઇન માં ઔદ્યોગિક અહીં ઈજનેરી એક વિદ્યાર્થી છું. હું આ ઓનલાઇન કોર્સ વિશે ઉત્સાહિત છું કારણ કે હું કોમ્પ્યુટર વિજ્ઞાન પ્રેમ હું ખરેખર આમ કરવા માટે, અને હું ખરેખર કદર કે હું તેને અન્વેષણ કરો. અને હકીકત એ છે કે હું એ જ તમે ગાય્સ તમામ કરવું જાણી શકો છો પરંતુ હાર્વર્ડ હોવાથી હું માલ્ગા છું બદલે અદ્ભુત કેવી રીતે છે? વેલ, હું ફર્નાન્ડોનો છું, અને આ CS50 છે. તમે ગાય્સ જુઓ. [અટ્ટહાસ્ય] અન્ય ક્લિપ અમે ખાસ કરીને ગમે, તો તમે મળશે કે આ ખાનદાન ઇંગલિશ જેથી મજબૂત નથી. એવું લાગે છે કે તેમણે તે મશીન અનુવાદ, જેથી પોતે ભાષાંતરો થોડી અપૂર્ણ છે, પરંતુ આ એક અમારા મનપસંદની આમ અત્યાર સુધી તેમજ હતો. [♪ ♪] હેલો, વિશ્વ. [જાપાનીઝ બોલવામાં] [હું જાપાની માં સ્વાગત છે કારણ કે મારા ઇંગલિશ ખૂબ અવિશ્વસનીય છે.] [હું તમને સંદેશ વિતરિત છે Gifu શહેરમાં જાપાન.] [હું પ્રથમ વખત માટે એક વિદ્યાર્થી 20 વર્ષ હોય છે, જેમ જોઇ શકાય છે કરી શકો છો.] [હું ખૂબ જ હાર્વર્ડ યુનિવર્સિટી કૃતજ્ઞ જે મને આ તક અને edX આપ્યો છું.] [ગોલ્ફ ગિતાર છે અને મારા મનપસંદ વસ્તુ ચાલી રહ્યું છે.] [અટ્ટહાસ્ય] [♪ ♪] [તમે શા માટે વિચારો છો કે હું એક cs50x હાજરી પ્રયાસ કરી રહી છે.] [હાર્વર્ડ યુનિવર્સિટી, તે મારી ઝંખના છે.] [ખાસ કરીને જો હું છું દૂરના હાજરી જાપાન રહેતા હતા.] [હું તરત જ જેમ કે જ્યારે. EdX ના અસ્તિત્વ પરિચિત પ્રયાસ ઇચ્છતા] [તમે એવું લાગે છે તમે આઇ શીખવાની વર્ષની સંબંધિત નહિં નથી શું] Cs50 [મારી ઝંખના છે. મારું નામ Kazu છે, અને આ cs50 છે.] [♪ ♪] [વધાવી અને આનંદદાયક] અવર્સ અન્ય એક મનગમતા કોઇને આ અહીં રજૂઆત હતી. [♪ ♪] [Malan] Google જો તમે આ સંભારણામાં સાથે પરિચિત છો. અને પછી છેલ્લે, અન્ય કે જે પોસ્ટ મળ્યો કે કદાચ આરાધ્ય એવોર્ડ જીતી બે. [વિદ્યાર્થીઓ] ઓહ! >> [Malan] અમે સાંભળવા મળશે. આ ટૂંકી છે, તેથી નજીકથી સાંભળો. [માદા વક્તા] તમારું નામ શું છે? >> લૂઇ. [માદા વક્તા] આ શું છે? >> [પડતી રમૂજ] CS50. [અટ્ટહાસ્ય] [Malan] તેમણે બે, તેમ છતાં લે છે. અહીં અમે જાઓ, છેલ્લા. મારું નામ લૂઇ છે, અને આ CS50 છે. [અટ્ટહાસ્ય] આ પછી CS50x છે. તમે તે બધા આભાર જ્યારે ઘરમાં સાથે પગલે જે આમ દૂર કરવામાં partaking છે. આજે, અમે માહિતી માળખાં અમારી ચર્ચા તારણ, ઓછામાં ઓછા સૌથી મૂળભૂત કેટલીક અને પછી અમે HTML અને વેબ પ્રોગ્રામિંગ વિશે અમારી વાતચીત ચાલુ છે. ખરેખર, અમે ભૂતકાળમાં ખર્ચ્યા કર્યા છે કેટલીક સાત અઠવાડિયા પ્રોગ્રામિંગ ના ફંડામેન્ટલ્સ જોઈ - ગણતરીના માહિતી માળખાં, અને જેમ - અને C, કારણ કે તમારે આમ અત્યાર સુધી અનુભવ હોઈ શકે છે, જરૂરી સૌથી ભાષાઓ સુલભ નથી જે સાથે તે અમુક વિચારોની અમલ. અને તેથી આ સપ્તાહ અને આગામી સપ્તાહ શરૂ છે અને પછી નીચેના, અમે છેલ્લે સી, કે જે સામાન્ય રીતે ખૂબ જ ઓછી સ્તર ભાષા તરીકે ઓળખાય છે સંક્રમિત કરવા માટે સમર્થ હશો, તેમને PHP, જાવાસ્ક્રિપ્ટ વચ્ચે ઊંચુ સ્તર, અને જેવી વસ્તુઓ, જેને આપણે જ પાઠ કે અમે છેલ્લા કેટલાક અઠવાડિયા શીખી કર્યું છે તેના પર દોરવા જોશો, પરંતુ તમે શોધી શકશો કે એરે અને હેશ કોષ્ટકો જેવી વસ્તુઓ જાહેર અને શોધ અને સૉર્ટ ખૂબ જ સરળ બની જાય છે કારણ કે તેમની ભાષાઓ અમે મદદથી શરૂ કરી શકશો વધુ શક્તિશાળી બની જાય છે. પરંતુ પ્રથમ, વૃક્ષો અરજી. તે ખૂબ જ સામાન્ય છે આ દિવસોમાં માટે માહિતી સંકુચિત જરૂર છે. કયા સંદર્ભમાં તમે ડિજીટલ માહિતી અમુક પ્રકારના સંકુચિત માગતા નથી? યાહ. >> [વિદ્યાર્થી] જ્યારે તમે તેને વેબ પર મોકલવાની જરૂર છે. અરે વાહ, જ્યારે તમે વેબ પર કંઈક મોકલવા માંગો છો. જો તમે એક મોટી ફાઈલ ડાઉનલોડ કરવા માંગો છો, તે અન્ય ઓવરને પર કોઈ વ્યક્તિ જો આદર્શ છે છે કે ફાઈલ સંકુચિત એક ઝિપ બંધારણમાં અથવા તે કંઈક મદદથી જેથી તમે ઓછા બિટ્સ કરતાં અન્યથા વહન કરી શકે છે મોકલી રહ્યાં છો. તેથી તમે કેવી રીતે સંકુચિત માહિતી છે? તે ઓછા બિટ્સ કરતાં મૂળભૂત રીતે જરૂરી છે મદદથી તમામ નીચે ઉકળે. પરંતુ આ એક વિચિત્ર વસ્તુ પ્રકારની છે કારણ 0 અઠવાડિયા અને 1 પાછા લાગે જ્યારે અમે વિશે વાત કરી તે ASCII અને બાઈનરી અને અમે વિશે ખાસ કરીને તે ASCII વાત 8 બીટ્સ મદદથી મૂળાક્ષરનો પ્રતિનિધિત્વ તરીકે જેથી અક્ષર એક 65 દ્વારા રજૂ થાય છે, જે 97 નંબર છે લોઅરકેસ, અને તેમ છતાં તમે 65 કે 97 પ્રતિનિધિત્વ કરે છે, તમે 7 અથવા 8 બીટ્સ ઉપયોગ કરી રહ્યાં છો. પરંતુ કેચ છે કે ઇંગલિશ મૂળાક્ષર કેટલાક અક્ષરો છે કે અન્ય લોકપ્રિય નથી. Z કે તમામ લોકપ્રિય નથી, ક્યૂ કે તમામ લોકપ્રિય નથી, પરંતુ A અને E લોકપ્રિય સુપર છે. અને હજુ સુધી આ અક્ષરો બધા માટે, મૂળભૂત રીતે વિશ્વમાં બિટ્સ સમાન સંખ્યા ઉપયોગ કરે છે, ફક્ત 8. તેથી તે નથી દરેક અક્ષર માટે 8 બીટ્સ ઉપયોગ જો બદલે સ્માર્ટ રહ્યા છો, પણ સૌથી કવચિત Q કે Z જેમ વપરાય છે, જો આપણે એ અને ઇ અને એસ અને સૌથી વધુ લોકપ્રિય પત્રો માટે ઓછા બિટ્સ ઉપયોગ અને ઓછા લોકપ્રિય અક્ષરો માટે વધુ બિટ્સ ઉપયોગ થાય છે, આ સામાન્ય કેસ માટે લેટ્સ ઑપ્ટિમાઇઝ છે વિચાર, જે ઑપ્ટિમાઇઝ શું સૌથી થાય રહ્યું છે કરવાનો પ્રયાસ ઓફ કમ્પ્યૂટર સાયન્સ થીમ છે અને જે વસ્તુઓ કે, હા થાય છે, શકે પર થોડો વધારે સમય, થોડી વધુ જગ્યા બગાડવાની પરંતુ જરૂરી નથી તરીકે વારંવાર. તેથી આપણે એક ઉદાહરણ લો. ધારો કે અમે માહિતી એકદમ અસરકારક રીતે બેવડી કરવા માંગો છો. તમે પુખ્ત ઉંમરનું હોઈ શકે મોર્સ કોડ વિશે થોડું કંઈક જાણીને, અને મતભેદ છે તો તમે વાસ્તવિક કોડ ખબર ન હતી, પરંતુ તમે યાદ કરી શકે છે કે તે ઓછામાં ઓછા બિંદુઓ અને ડેશો આ શ્રેણી છે. ઉદાહરણ માટે, ઇ - આ રીતે કાર્યક્ષમ કોડિંગ અને સૂચના સૌથી લોકપ્રિય પત્ર છે - beeps ના ટૂંકી ઉપયોગ કરે છે. મોર્સ કોડ બીપ Comment-બીપ Comment-બીપ Comment-બીપ Comment-બીપ Comment-બીપ Comment વિશે તમામ અને ટોન હોલ્ડિંગ છે ક્યાં સમય અથવા લાંબા સમય ટૂંકા ગાળા માટે. ઇ, તરીકે ડોટ દ્વારા સૂચિત, સુપર ટૂંકા બીપ Comment, ફક્ત બીપ Comment છે, અને તે ઇ પ્રતિનિધિત્વ કરશે તેનાથી વિપરીત, ટી લાંબા બીપ Comment હોઈ શકે છે, જેમ કે બીપ Comment કરશે [અવાજ prolongs], અને તે ટી પ્રતિનિધિત્વ કરશે પરંતુ તે હજુ ખૂબ ટૂંકા તેનાથી વિપરીત, કારણ કે જો તમે Z જોવા, માટે Z વ્યક્ત તમે બીપ Comment, બીપ Comment [લાંબા સમય સુધી અવાજ], બીપ Comment, બીપ Comment [ટૂંકા અવાજ] જશે. જેથી તે હવે નથી કારણ કે તે ઓછું સામાન્ય છે. પરંતુ અહીં gotcha છે કે મોર્સ કોડ બીટ ફાંટ છે કે જેમાં તે તરત જ decodable નથી. હમણાં પૂરતું ધારવું કે, તમે વાયર બીપ Comment કેટલાક ઓવરને પર સાંભળવા [ટૂંકા], બીપ Comment [લાંબા]. સંદેશ શું હું હમણાં જ પ્રાપ્ત થઇ ન હતી? એક ટપકું અને આડંબર. કે શું પ્રતિનિધિત્વ કરે છે? [વિદ્યાર્થી] એ >> [Malan] કદાચ. તે પણ ટી દ્વારા અનુસરવામાં ઇ હોઈ શકે છે અન્ય શબ્દોમાં કહીએ મોર્સ કોડ છે, છતાં પણ તે ખૂણે કેસ ઓપ્ટિમાઇઝ આ સિદ્ધાંત સિંગાપોર, તે પોતે તાત્કાલિક decodability ન આપશો નથી. એટલે કે, માનવ જે સુનાવણી છે અથવા પ્રાપ્ત આ બિંદુઓ અને ડેશો માટે કોઈક બહાર આકૃતિ જ્યાં આરામ અક્ષરો વચ્ચે હોય છે, કારણ કે જો તમે જ્યાં તે તૂટે છે ખબર નહિં હોય, તમે ઇટીને અથવા ઊલટું માટે દિગ્મૂઢ કરવું પડી શકે છે. જેથી તમે શું કરી શકે છે? મોર્સ કોડ તમે માત્ર અક્ષરો દરેક વચ્ચે અટકાવવા શકે છે. પરંતુ pausing ગણક વસ્તુઓ ઝડપી અપ સમગ્ર મુદ્દો પ્રકારની છે. તેથી શું તેના બદલે જો આપણે એક કોડ સાથે આવ્યા હતા જ્યાં ત્યાં આ ખરાબ પરિસ્થિતિ ન હતી ઇ એક ઉપસર્ગ જ્યાં છે, ઉદાહરણ માટે છે, - અન્ય શબ્દોમાં, અમે ખાતરી કરો કે પેટર્ન હજુ પણ લોકપ્રિય પત્રો માટે ટૂંકા હોય છે બનાવી શકે જો ઓછા લોકપ્રિય અક્ષરો માટે લાંબા, પણ કોઈ શક્ય મૂંઝવણ છે? હફમેનના નું નામ દ્વારા માણસ વર્ષ પહેલાં આ હફમેનના કોડિંગ કહેવાય યોજના શોધ કે જે વાસ્તવમાં માહિતી બંધારણોની અમે સમય એક બિટ ખર્ચ્યા છે, તેના વિશે વાત એક સિંગાપોર આ છેલ્લા અઠવાડિયે, વૃક્ષો, દ્વિસંગી વૃક્ષો ખાસ કે - દ્વિસંગી વૃક્ષ અર્થ છે કે તે કોઈ 2 બાળકો કરતાં વધારે હોય છે. તે કદાચ એક ડાબી બાળક છે, કદાચ કોઇ અધિકાર બાળક, અને તે છે. તેથી ચર્ચા ખાતર માત્ર ધારો કે કોઇ વ્યક્તિ એક સંદેશ મોકલો માંગે છે કે આ જેવો દેખાય છે. તે સંપૂર્ણપણે નકામુ છે, પરંતુ તે જેમ બનેલા છે, bs, CS, ડીએસ, અને ES. અને જો તમે ખરેખર આ જેમ તમામ ગણતરી, bs, CS, ડીએસ, અને ES અને પછી અક્ષરો કુલ સંખ્યા દ્વારા વહેંચી આ અહીં થોડું ચાર્ટ કહે છે કે અક્ષરોના 45% ES છે, 20% જેમ હોય છે, 10% bs, અને તેથી આગળ. તેથી અન્ય શબ્દોમાં ધારે છે કે નોંધાયેલા ત્યાં શબ્દમાળા માત્ર કેટલાક સંદેશો કે જે તમે મોકલવા માંગો છો. તે નોનસેન્સ પ્રયત્ન એ જ થાય છે કે અમે શક્ય તેટલી થોડા અક્ષરો તરીકે ઉપયોગ કરી શકો છો, પરંતુ તે ખરેખર કેસ કે ઇ સૌથી લોકપ્રિય રહે છે, અને બી અને સી લોકપ્રિય ઓછામાં ઓછા, જેમાં મૂળાક્ષર આ 5 અક્ષરોનો ઓછામાં ઓછા છે. તેથી અમે એક એન્કોડિંગ સાથે આવતા વિશે કેવી રીતે જઈ શકે છે, દ્વિસંગી એન્કોડિંગ, આ અક્ષરો દરેક માટે 0s અને 1 સે એક પેટર્ન એવી રીતે કે ઇ ટૂંકા પેટર્ન હોય છે અને કદાચ બી અને સી સહેજ લાંબા સમય સુધી પેટર્ન નથી, ફરીથી, આ વિચાર એ હતો કે અમે ઓછા બિટ્સ તો મોટા ભાગના વખતે ઉપયોગ કરવા માંગો છો અને વધુ માત્ર એક વખતે એક વખત બિટ્સ. હફમેનના કોડિંગ અનુસાર, તમે વૃક્ષો વન બનાવી શકો છો. ત્યાં એક વાર્તા રેખા જેવું અહીં પણ છે અને તેમને મકાન ઉપર પ્રક્રિયા વૃક્ષો સમાવેશ થાય છે. ચાલો શરૂ કરો. હું પ્રસ્તાવ કે તમે આ જંગલ સાથે શરૂ થાય છે, 5 વૃક્ષો બોલે છે, જેમાં દરેક એક સુંદર મૂર્ખ વૃક્ષ છે. આ વૃક્ષ માત્ર એક નોડ છે, એક વર્તુળ દ્વારા અહીં રજૂ બનેલા છે. તેથી આ બાબતો દરેક એક સી સ્ટ્રક્ટ હોઈ શકે છે અને સી સ્ટ્રક્ટ ની અંદર એક આવર્તન ગણતરી રજૂ ફ્લોટ હોઇ શકે છે અને પછી કદાચ એક પત્ર રજૂ ઘરનાં પરચૂરણ કામો. તેથી તો કોઈપણ જૂના સી સ્ટ્રક્ટ તરીકે આ ગાંઠો લાગે છે, પરંતુ હવે, ઉચ્ચ સ્તર. આ 5 વૃક્ષો, જે માત્ર એક જ નોડ હોય દરેક એક વન છે. હફમેનના સૂચિત શું છે કે અમે તે ઝાડ ભેગા શરૂ કે સહેજ મોટા વૃક્ષો માં નાના આવર્તન ગણતરીઓ હોય છે તેમને નવા રુટ નોડ સાથે કનેક્ટ કરીને. તેથી અહીં અક્ષરો વચ્ચે નોટિસ, કે અનુકૂળતા માટે હું તેમને ડાબેથી જમણે છટણી કરી લીધી છે, જો કે તે સખત રીતે જરૂરી છે, અને સૂચના છે કે નાના ગાંઠો હાલમાં 10% અને 10% છે. તેથી હફમેનના દરખાસ્ત કરી હતી કે અમે એક નવું વૃક્ષ પર તે 2 નાના ગાંઠો મર્જ નવી પિતૃ નોડ દાખલ કરો અને પછી દ્વારા કે પિતૃ ડાબા બાળક અને એક યોગ્ય બાળક આપી જ્યાં બી આપખુદ ડાબી છે અને સી આપખુદ અધિકાર છે. અને પછી હફમેનના વધુ પ્રસ્તાવ મૂક્યો કે ચાલો હવે ખાલી ડાબી બાળક લાગે છે એક આ વૃક્ષો હંમેશા તરીકે રજૂ 0 દ્વારા કરવામાં આવી રહી છે અને જમણી બાળક હંમેશાં તરીકે નંબર 1 દ્વારા રજૂ કરવામાં આવી રહી છે. જો તમે તેને લાંબા તરીકે તમે સુસંગત છો વિમાનની મુસાફરી વાંધો નથી. તેથી હવે અમે આ જંગલ ચાર વૃક્ષો ધરાવે છે. અને હું કહી ચાર હવે કારણ કે ડાબી પર વૃક્ષ - અને તે ખૂબ જ અર્થમાં છે કે તે આ રીતે વધે એક વૃક્ષ નથી, તે કુટુંબ વૃક્ષ કે જ્યાં હવે 0.2 જે બે બાળકો પિતૃ જેવું છે જેમ વધુ છે - નોટિસ કે જે પિતૃ આપણે 0.2 દોરવામાં કર્યું છે. અમે બે બાળકો આવૃત્તિ ગણતરીઓ ઉમેર્યા છે અને નવા નોડ કુલ રકમ આપવામાં આવે છે. તેથી હવે અમે ફક્ત આ પ્રક્રિયા પુનરાવર્તન કરો. બે નાના ગાંઠો શોધો અને પછી તેમને એક નવું વૃક્ષ પર જોડાવા અને પછી વધુ પ્રક્રિયા પુનરાવર્તન કરો. હમણાં અમે થોડા ઉમેદવારો, 20%, 15%, અને અન્ય 20% હોય છે. આ કિસ્સામાં, અમે ટાઇને તોડવા માટે હોય છે. અમે તે આપખુદ કરી શકો છો. અમે હમણાં જ તે સતત કરવું જોઈએ. આ કિસ્સામાં, હું આપખુદ ડાબી પર એક સાથે જઈશ, અને હવે હું 20% અને 15% મર્જ કરવા મને એક નવા 35% કહેવાય પિતૃ આપવા માટે, ડાબી જેના બાળક 0, અધિકાર જેના બાળક 1 છે, અને હવે અમે ફક્ત જંગલ માં ત્રણ વૃક્ષો હોય છે. તમે કદાચ જુઓ જ્યાં આ રહ્યું છે કરી શકો છો. જો અમે આ દંપતી વધુ વાર પુનરાવર્તન, અમે માત્ર એક મોટા વૃક્ષ હોય છે જઈ રહ્યાં છો, તમામ ધાર છે જેમના 0s અને 1 સે સાથે લેબલ થયેલ. તેના ફરીથી દો. 35% કે વૃક્ષ મૂળ છે. 20% અને 45% છે, તેથી અમે 35% અને 20% મર્જ રહ્યા છીએ. હવે અમે આ વૃક્ષ અહીં છે. અમે તે મળીને ઉમેરો, અમે 55% હોય છે. હવે ત્યાં વન માત્ર બે વૃક્ષો છે. અમે આ એક અંતિમ સમય કરવા માટે, અને આસ્થાપૂર્વક ગાણિતિક બધી આવૃત્તિઓ સુધીનો ઉમેરો કારણ કે તેઓ ત્યારથી અમે તેમને ગણતરી જોઇએ માટે 100% સુધીનો ઉમેરો વિચાર-જાઓ. અને હવે અમે એક વૃક્ષ હોય છે. તેથી આ એક હફમેનના કોડિંગ વૃક્ષ છે. તે પ્રકારની જ્યારે લીધો ત્યાં મૌખિક વિચાર છે, પરંતુ વાસ્તવિકતા લૂપ માટે એક સાથે છે અથવા ફરી યાદ આવવું કાર્ય સાથે, તમે આ વસ્તુ ઉપર ખૂબ ઝડપી બિલ્ડ કરી શકે છે. તેથી હવે અમે એક નવું નોડ હોય છે, અને આ આંતરિક ગાંઠો તમામ malloc'd આવ્યા છે, કદાચ, જે રીતે આપવામાં આવી છે. તેથી હવે આ વૃક્ષની ટોચ પર અમે 100% છે, પરંતુ હવે નોટિસ અમે પાથ હોય આ નવી મહાન-મહાન-મહાન-પોતાના માતા - પિતાના માતા - પિતા ના મહાન-મહાન-મહાન-પૌત્ર બધા તળિયે તમામ રીતે પાંદડાઓ બધા. અમે હવે શું કરવું જઈ રહ્યાં છો કે કઈ પ્રસ્તાવ કરવા માટે પત્ર ઇ પ્રતિનિધિત્વ કરે છે, અમે ફક્ત નંબર 1 ઉપયોગ કરશે. શા માટે? જો અમે અંતિમ રુટ ના ઇ તરીકે ઓળખાય પર્ણ આ વૃક્ષ નીચે પસાર કારણ કે, અમે માત્ર એક ધાર, જમણી ધાર અનુસરો, અને તે અલબત્ત ઉપર જમણી 1 અંતે લેબલ થયેલ છે. તેથી હફમેનના માટે અહીં સૂચિતાર્થ હતું કે દ્વિસંગી માં ઇ એન્કોડિંગ ફક્ત 1 રહેશે. અને તે ખૂબ ધુત્કારી કાઢવું ​​કાર્યક્ષમ છે. કરતા કોઇ પણ નાના ખરેખર ન મેળવી શકો છો. તેનાથી વિપરીત, એ માટે રજૂ, જો તમે તર્કશાસ્ત્ર અનુસરો રહ્યું છે, તેના બદલે બિટ્સની પેટર્ન શું દ્વારા? 01. તેથી એ મેળવવા માટે, અમે રુટ શરૂ થાય છે અને અમે જાઓ છોડી અને પછી અમે અધિકાર જાઓ, જેનો અર્થ છે કે અમે 0 અનુસર્યો અને પછી 1 એ. તેથી અમે પેટર્ન 0 અને 1 થી એક પત્ર પ્રતિનિધિત્વ કરશે. અને હવે નોટિસ અમે પહેલાથી જ તાત્કાલિક decodability એક મિલકત છે કે અમે મોર્સ કોડ નહોતી. તેમ છતાં આ દાખલાની બંને ખૂબ ટૂંકા હોય છે - ઇ bit 1 છે, એ 2 બીટ્સ છે - નોંધ્યું છે કે તેઓ એક અથવા અન્ય ગેરસમજ ન કરી શકે, કારણ કે જો તમે 1 ને જોવા માટે એક ઇ હોઇ શકે છે, જો તમે જોઈ મળ્યું છે એક 0 પછી 1 તેને ચોક્કસપણે એક એ પ્રયત્ન મળ્યું છે એ જ રીતે, શું ડી છે? 001. સી શું છે? 0001. અને બી શું છે? 0000. અને ફરી, કારણ કે અક્ષરો અમે વિશે કાળજી તમામ પાંદડા હોય છે અને તેમાંથી કોઈ રુટ ના પર્ણ પાથ માં middlemen પ્રકારની હોય છે, ત્યાં 2 'અક્ષરો અલગ એનકોડીંગ conflating કોઈ જોખમ છે કારણ કે આ બીટ દાખલાની તમામ નિર્ધારિત હોય છે. 0000 હંમેશાં બી થશે ત્યાં કોઈ વચ્ચે ક્યાંક નોડ કે જે તમે અન્ય માટે એક પત્ર ગૂંચવાડો ઊભો શકે છે. તેથી અહીં સૂચિતાર્થ શું છે? સૌથી વધુ લોકપ્રિય પત્ર - આ કેસ ઇ માં - સૌથી ટૂંકી એન્કોડિંગ મેળવેલ છે, એ પછીના ટૂંકી એન્કોડિંગ મેળવેલ છે, અને બી અને સી, જે અમે પહેલાથી જ વિચાર-જાઓ ઓછામાં ઓછા લોકપ્રિય હતા પ્રકારની માંથી જાણતા હતા 10% આવર્તન દરેક ખાતે, તેઓ સૌથી લાંબો એન્કોડિંગ મેળવેલ છે. અને તેથી આ હવે એનો અર્થ એ થાય કે શું એ છે કે જો તમે કોઈ સંદેશ છે કે સંકુચિત છે મોકલવા માંગો છો ઇન્ટરનેટ પર અથવા ઇમેઇલ અથવા જેવી, તેના બદલે પ્રમાણભૂત ASCII મદદથી કરતાં, તમે એક હફમેનના કોડેડ સંદેશ મોકલી શકે છે જો તમે અક્ષર ઇ મોકલવા માંગો છો, જેમાં તમે માત્ર એક બીટ મોકલો. જો તમે એક મોકલવા માંગો છો, તો તમે 2 બીટ્સ, 01 ના બદલે 8 બીટ્સ મોકલવા મોકલો અન્ય 8 અન્ય 8 બીટ્સ અને તેથી આગળ દ્વારા અનુસરવામાં બિટ્સ દ્વારા અનુસરીને. પરંતુ ત્યાં gotcha અહીં છે. તે માટે પૂરતો ફક્ત આ વૃક્ષ રચવા અને પછી એલિસ ના બોબ માટે મોકલવાનું શરૂ કરવા નથી ટૂંકા બીટ પેટર્ન, તે ASCII માંથી શબ્દમાળા કારણ કે એલિસ પણ શું બોબ જાણ છે જો બોબ માટે પોતાના સંકુચિત સંદેશો વાંચો કરવાનો પ્રયત્ન રહ્યું છે? [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> કે શું છે? [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] વૃક્ષ શું છે. >> પણ વધુ ચોક્કસ અથવા, તે એન્કોડીંગ્સ કયા છે, ખાસ કરીને કારણ કે આ વાર્તા દરમિયાન અમે એક તબક્કે ચુકાદો કોલ કર્યો હતો. યાદ રાખો કે અમે 2 અલગ અલગ 20% ગાંઠો વચ્ચે આપખુદ બનાવ્યો હતો? તેથી તે કેસ કે બોબ, પ્રાપ્તકર્તા, ફક્ત તેમના પોતાના પર વૃક્ષ પુનઃનિર્માણ માટે કરી શકે નથી કારણ કે કદાચ તેમણે વૃક્ષ અત્યાર સુધીમાં સહેજ એલિસ માંથી અલગ બનાવવા માટે પડશે. વધુમાં, બોબ પણ મૂળ સંદેશ શું છે ખબર નથી કારણ કે તે જ વસ્તુ એલિસ તેને મોકલી રહ્યું છે, અલબત્ત, સંકુચિત સંદેશ છે. તેથી આ જેવા સંકોચન સાથે કેચ છે કે, હા, એલિસ બિટ્સ સંપૂર્ણ ઘણો સંગ્રહી શકો છો એ માટે ઇ માટે અને 1 01 મોકલવા અને તેથી આગળ દ્વારા, પરંતુ તે પણ બોબ જાણ મેપિંગ શું અક્ષરો અને બીટ્સ વચ્ચે છે કારણ કે તેઓ સ્પષ્ટપણે પર ASCII માત્ર કંઈ પણ આધાર રાખે છે જો આપણે તે ASCII નથી ઉપયોગ કરી રહ્યાં છો કરી શકો છો. તેથી તેઓ ક્યાં તો તેમને વૃક્ષ કોઈક મોકલી શકો છો - તે લખી, તે બાઈનરી અથવા તેના જેવા માહિતી કંઈક તરીકે સંગ્રહવા - અથવા માત્ર તેને થોડો ખાણિયાઓને છેતરે છે શીટ, એક એક્સેલ ફાઇલ, કે જે જોડણીઓ બતાવે મોકલો. તેથી કમ્પ્રેશન ની અસરકારકતા ખરેખર ધારે છે કે સંદેશા જે તમે મોકલી રહ્યાં છો ખૂબ મોટું છે ઓછામાં ઓછા મધ્યમ કદના, જો તમે એક સુપર શોર્ટ મેસેજ મોકલી રહ્યાં છો કારણ કે, જો તમે માત્ર સંદેશો BAD મોકલવા માંગો છો, જે શબ્દ આપણે અહીં જોડણી શકે થાય છે, બી એ ડી, તો તમે કદાચ ઓછા બિટ્સ ઉપયોગ જઈ રહ્યાં છો, પરંતુ કેચ છે, જો તમે પણ બોબ જાણ વૃક્ષ શું છે અથવા તે એન્કોડીંગ્સ શું હોય, તો તમે કદાચ બચત બધી વજનમાં વધવું જઈ રહ્યાં છો સંકુચિત વસ્તુઓ કર્યા સાથે શરૂ થાય છે. તેથી તે ખરેખર કેસ કે જો તમે પ્રયાસ કોમ્પ્રેસ કરી શકાય છે ઝિપ અથવા ફાઈલ બંધારણો કંઈક પણ તમારી સાથે પરિચિત હોઈ શકે છે - ખૂબ નાની ફાઇલો, પણ ખાલી ફાઈલો - ક્યારેક તે ફાઈલો મોટી નથી અને નાના વિચાર કરી શકે છે. પરંતુ વાસ્તવિકપણે, કે જે નાના ફાઈલ માપ માટે જ થાય છે, તેથી તે બનાવવા માટે એક gigabyte ફાઈલ 2 ગીગાબાઇટ્સ નથી ચાલી રહ્યું છે; અમે ખરેખર બાઇટ્સ અથવા માત્ર એક દંપતી કિલોબાઈટોમાં વાત કરી રહ્યા છીએ. પિન જેવી કેટલીક કાર્યક્રમો પૂરતી સ્માર્ટ કે ખ્યાલ હોય છે, "તમે વધુ કોમ્પ્રેસ આ બિટ્સ ખર્ચવા રહ્યા છીએ." "ચાલો, મને બગ રીતે તે તમારા માટે બધા કોમ્પ્રેસ નથી." તેથી આ માત્ર લખાણ બંધારણમાં કોમ્પ્રેસ એક પછી રસ્તો છે. અમે સી માં આ કંઈક અમલ કરી શકે છે હમણાં પૂરતું, અંહિ કેવી રીતે અમે આ વૃક્ષ એક નોડ પ્રતિનિધિત્વ કરી શકે છે જ્યાં અમે પ્રતીક માટે એક કોલસો બનાવો, કે આવૃત્તિ માટે એક તરતા કિંમત હોય છે, અને અમે અમારા અન્ય માહિતી માળખાં, 2 પોઇન્ટર સાથે જોઇ છે, 1 ડાબી બાળક, 1 અધિકાર માટે, ક્યાં તો જે NULL હોઇ શકે છે, પરંતુ જો નહિં, તો તે એક ડાબી બાળક અને એક યોગ્ય બાળક ગણવામાં આવે છે. તેથી આ પછી હફમેનના કોડિંગ છે, અને તે એક રસ્તો છે કે તમે માહિતી કોમ્પ્રેસ જઈ શકે છે, અને તે ચોક્કસપણે છે સૌથી અમલ કરવા માટે સરળ ઓફ કહે છે, છેલ્લા સપ્તાહની માહિતી માળખાં સંદર્ભમાં, જોકે હજુ પણ વધુ સોફિસ્ટિકેટેડ અલ્ગોરિધમનો અસ્તિત્વમાં કે જે તમારી માહિતી પણ વધુ વ્યવહારદક્ષ પરિવર્તનો કરી શકો છો. વૃક્ષો, દ્વિસંગી વૃક્ષો, અથવા લખાણ સંકોચન પર કોઈપણ પછી પ્રશ્ન છે? [વિદ્યાર્થી] કેટલાક સંદિગ્ધતા છે 01 માં જેમ જો [અશ્રાવ્ય] સ્પ્લિટ, પછી 011 સંદિગ્ધ અધિકાર રહેશે? [અશ્રાવ્ય] >> ગુડ પ્રશ્ન. સંદિગ્ધતા. આ ચિત્ર અહીં ઉલ્લેખ કરીને મને સારાંશ. કારણ કે તમે જે અક્ષરો કોમ્પ્રેસ છે, જે રજૂઆત, આ અલ્ગોરિધમનો વ્યાખ્યા દ્વારા હંમેશા પાંદડા રહેશે, તમે આકસ્મિક બહુવિધ અક્ષરોની પૂર્વગ માટે બીટ્સ જ પેટર્ન ક્યારેય ઉપયોગ કરશો. તેથી અન્ય શબ્દોમાં, તમે ચિંતિત હોવ તો, તે જેવી, એક થતા સંદિગ્ધતા લાગે 001 બી ની શરૂઆતમાં અથવા C અથવા કે કંઈક શરૂઆત જેમાં હોઈ શકે છે. પરંતુ તે કિસ્સામાં કારણ કે નોટિસ કે વર્ણમાળાના અક્ષરોને તમામ અમે એન્કોડિંગ કરી રહ્યાં હોઈ શકતું નથી પાંદડા હોય છે. આ સંદિગ્ધતા માત્ર મોર્સ કોડ કિસ્સામાં જન્મી છે, કરી શકો છો, જો, ઉદાહરણ તરીકે, સી રુટ ના બી પાથ સાથે ક્યાંક હતી [વિદ્યાર્થી] અધિકાર. જેથી કિસ્સામાં કહે, એ 2 પાંદડા ધરાવે છે. >> સે એક છે - કે જે ફરીથી કહો. [વિદ્યાર્થી] કહો એ 2 પાન, F અને જી, અને પછી જી છે - >> ઠીક. પરંતુ તે ન કરી શકે. એ પોતે પાંદડાં અને તે અક્ષરો કારણ કે એફ જી ન હોય શકે એફ અને જી પોતાને બી ની ડાબી કે ઇ જમણી ક્યાંક નહીં થશે તેથી વ્યાખ્યા દ્વારા, તેઓ પાંદડા હોવા જ જોઈએ. નહિંતર, તમે બરાબર યોગ્ય છો, અમે સમસ્યા કે મોર્સ કોડ સામનો ન ઉકેલી કર્યું છે. પ્રશ્ન સારું. અન્ય પ્રશ્નો છે? અધિકાર છે. બિટ્સ આ ખ્યાલ છે, તે બહાર અમે શક્તિ પડ્યું વળે બધા સાથે આપણે ખરેખર ઉપયોગ નથી કર્યો છે જ્યારે તે આ 0s અને 1 સે હેરફેર હતી. અમે એક વહેલામાં સમસ્યા સેટ પર આ વિશે પૂછ્યું હતું: એટલે કે, તમે કેવી રીતે મોટા લોઅરકેસ અથવા ઊલટું રૂપાંતરિત જઈ શકું? અથવા, વધુ concretely, એક તે પ્રથમ psets કહ્યું કેટલા બિટ્સ તમે ખરેખર કરવા માટે ક્રમમાં એક બદલવા માટે એક અથવા તેનાથી ઊલટું લોઅરકેસ વિમાનની મુસાફરી છે? અહીં 65 અને 97 શું દ્વિસંગી જેમ જોવા ઝડપી રીમાઇન્ડર છે. અને જો તેમ છતાં પણ પ્રશ્ન પ્રકારના તમારી મેમરી ઝાંખુ છે, તમે ફરીથી અહીં જુઓ કે કેટલા બીટ ઘસવું કરવાની જરૂર કરી શકો છો માટે મૂડી બદલી એક લોઅરકેસ માટે? માત્ર એક. તેઓ માત્ર એક સ્થાન, ડાબેથી ત્રીજા બીટ માં અલગ પડે છે. જ્યારે એક 010 થોડું છે, એક 011 એક છે. જેથી કોઈક, અમે માત્ર કે બીટ વિમાનની મુસાફરી કરવાનો પ્રયત્ન કરવાની જરૂર છે, અને અમે તે પછી ઉઠાવે છે અથવા પત્રો લોઅરકેસ કરી શકો છો. અમે ખરેખર ઉપયોગ કરીને ભૂતકાળમાં આ કર્યું છે શરતો જો અને ચકાસણી જો પત્ર મૂડી A અને મૂડી Z વચ્ચે હોય છે, પછી એક જેવા ઉત્પાદનોમાં - 26 + અથવા કે કંઈક. તમે કદાચ એક અંકગણિત અંગ્રેજી મૂળાક્ષરના અક્ષરોનો ફેરફાર કર્યો હતો. પરંતુ જો આપણે માત્ર કે સિંગલ બીટ વિમાનની મુસાફરી કરી શકે છે? તમે 01000001 01100001 અને જેવા બીટ્સ, જેથી 8 બીટ્સ એક હિસ્સો બાઇટ વર્થ લેવા વિશે કેવી રીતે જવું શકે છે? જો તમે બિટ્સની તે દાખલાની હતી, અમે કેવી રીતે ફક્ત તેને એક બદલવા વિશે જઇ શકો છો? જો અમે પીળા અહીં બિટ્સ આ અન્ય પેટર્ન દાખલ? જો હું એક બીટ સિવાય સમગ્ર પીળા શબ્દમાળા 0s કરો કે હું બદલવા માંગો છો અને પછી મને એક નવા એક bitwise ઓપરેટર તરીકે ઓળખાય ઓપરેટર દાખલ - અર્થમાં કે તે વ્યક્તિગત બીટ્સ પર ચલાવે માં bitwise, સમગ્ર બાઇટ અથવા ચાર બાઇટ્સ તમામ એકવાર પર નથી. પીળો આ વર્ટીકલ ત્યાં બાર સૂચવે છે કે શું જો અમે મૂડી પ્રતિનિધિત્વ એક લેવા અને bitwise અથવા તે બિટ્સ ના પીળા ક્રમ સાથે? અન્ય શબ્દોમાં, સ્ક્રેચ માં બુલિયન અભિવ્યક્તિઓ અમારી ચર્ચા પાછા લાગે અને પછી સી માં એક બુલિયન કરવાથી અથવા અર્થ એ થાય કે વાત સાચી છે, ક્યાં તો પ્રથમ વસ્તુ સાચી હોવી જોઇએ અથવા બીજા વસ્તુ છે તે વાત સાચી છે કે તેઓ બન્ને વાત સાચી છે, અને પછી પરિણામી આઉટપુટ પોતે સાચી છે. આ અહીં કિસ્સામાં, અમે શું જો અમે 0 મેળવવામાં "અથવા" નહીં 0 સાથે ઇડી? ખોટી અથવા ખોટા? તે હજુ ખોટા હોવાથી, લોઅરકેસ એક ઈચ્છિત તરીકે રહે છે. તો શું તેના બદલે અમે 1 અથવા 0 કરે છે? આ હવે 1 રહે છે, પરંતુ નોટિસ શું છે અહીં થાય વિશે. , જો અમે એ મૂડી સાથે શરૂ કરો અને ચાલુ રાખવા માટે અમે "અથવા" તેના વ્યક્તિગત બિટ્સ તરીકે અમે અહીં કરી રહ્યા છીએ 0 અથવા પીળા એક અમને શું નીચે અહીં મળે છે? આ અમને 1 આપે છે. હકીકતમાં ધારવું, અમે નથી જાણતા હતા થોડું ના મૂળાક્ષરોની આવૃત્તિને શું ખરેખર હતી. ચાલો આ કરવા જાઓ. મને અહીં પર આ પાછળ ખસેડો. માતાનો આ ફરીથી દો. 0 અથવા 0 મને 0 આપે છે. 1 અથવા 0 મને 1 આપે છે. 0 અથવા 1 1 મને આપે છે. 0 અથવા 0 મને 0 આપે છે. આગામી એક 0 છે, તો આગામી એક 0 છે, તો આગામી એક 0 છે. 1 અથવા 0 મને 1 આપે છે. અને તેથી જો આપણે અગાઉથી ખબર ન હતી શું હતું લોઅરકેસ, ફક્ત દ્વારા "અથવા" ING એ બીટ કે અમે અહીં પીળા પ્રસ્તુત કર્યા છે આ પેટર્ન, કે જે તમને બીટ ફ્લિપિંગ દ્વારા મૂડી એક લોઅરકેસ કરી શકો છો. અમે આ સમીકરણ અઠવાડિયા પહેલા વપરાય છે: બીટ ફ્લિપિંગ. તમે કેવી રીતે વાસ્તવમાં નથી કે પ્રોગ્રામ છે? તમે ઉપયોગ શું સામાન્ય રીતે માસ્ક, બિટ્સની સીક્વન્સ કહેવાય છે, કે આ કિસ્સામાં જ આ નંબર જેવી અહીં જુઓ થાય છે, અને પછી તમે "અથવા" તે એક સાથે આ નવા C ઓપરેટર વાપરી રહ્યા હોય, |, તમે એક વાપરવા | | અને તમે ખરેખર આ જવાબને અહીં વિચાર કરશે કારણ કે શા માટે નહીં? આ 1 સે સ્થળ 2s સ્થળ, 4s, 8, 16s, 32s છે. તેથી તે તારણ કે જો તમે મૂડી પત્ર લઇ એ અને bitwise અથવા તે પૂર્ણાંક 32 સાથે, આ પૂર્ણાંક 32 કારણ કે, જ્યારે તમે બિટ્સ કારણ કે તે જોવા માટે, આના જેવો લાગે છે, તેનો અર્થ એ કે તમે બીટ કે જે તમે ખરેખર કરવા માંગો છો વિમાનની મુસાફરી કરી શકે છે. અને એ જ રીતે - અને આપણે કોડ અંતે માત્ર એક ક્ષણ જોવા મળશે - ધારવું અમે અન્ય દિશામાં જવા માંગો છો. તમે કેવી રીતે લોઅરકેસ એક મૂડી માટે ના જાઓ છો? બીટ કે જે બદલવા માટે જરૂર છે? તે જ એક છે. અમે 1 એક એક 0 કે તૃતીય બીટ બદલવા માંગો છો. અને અમે આમ વિશે કેવી રીતે જવું શકે છે? અમે આ બોલ પર કેવી રીતે બીટ ચાલુ? બિટ્સની પેટર્ન શું અમે બોલ બીટ ચાલુ કરી શકે છે? જો અમે માસ્ક ઇન્વર્ટ ઓફ સૉર્ટ? પહેલાં, જ્યારે અમે સમગ્ર પીળા માસ્ક 0s બનાવવામાં એક બીટ સિવાય અમે ચાલુ માગતા હતા, શું આ સમય જો, અમે બીટ સિવાય સમગ્ર માસ્ક 1 સે બનાવવા કે અમે બંધ કરવા માંગો છો અને પછી શું ઓપરેટર ઉપયોગ કરો છો? જો અમે "અને" વસ્તુઓ? ચાલો એક નજર નાખો. જો આપણે હવે આ વિમાનની મુસાફરી ધારવું કે, ફરી હું એક માસ્ક છે કે જે બધી 1 સે બનાવી એક બીટ કે હું બંધ કરવા માંગો છો સિવાય અને પછી બદલે "અથવા" પીળું નીચે અહીં નંબરો સાથે ટોચ ઉપર સફેદ નંબરો, શું હું ને બદલે "અને" તેમને એકસાથે જો? તે bitwise કહેવાય છે અને. તાર્કિક રીતે, તે બુલિયન તરીકે જ વાત છે અને. આ મને આપે 0 અને 1 0 છે. જેથી ખોટું અને સાચું ખોટું છે. સાચું અને સાચું સત્ય છે. અને અહીં છે જાદુ: સાચું અને ખોટું હવે ખોટી છે, તેથી અમે બોલ કે બીટ ચાલુ કરી છે. અને હવે બાકીની વાર્તા અંશે સરળ છે. કારણ કે માસ્ક બાકીના 1 સે છે, તે તો કોઈ વાંધો નથી નંબરો શું સફેદ હોય છે. જ્યારે તમે "અને" સાચા સાથે કંઈક, તમે તેની કિંમત બદલવા નથી જઈ રહ્યાં છો. જો તે સાચું છે, તો તે સાચું જ રહેશે. જો તે ખોટું હતું, તે ખોટા રહેશે. પરંતુ જાદુ ત્યારે થાય છે જ્યારે તમે કંઈક છે જે સાચું હતું લેવા અને પછી "અને" તમે તેને ખોટી છે. આ બોલ કે બીટ દેવાનો અસર ધરાવે છે. તેથી થોડું ત્યાં છુપાયેલું. ચાલો વાસ્તવમાં કેટલાક કોડ જોવા છે, જે વાસ્તવમાં વધુ ભેદી જોવા શકે છે, દો પરંતુ tolower અંતે અહીં એક નજર નાખો. જો હું tolower જોવા, મૂડી માંથી જઈને એક લોઅરકેસ માટે, ચાલો કેવી રીતે અમે આ કાર્યક્રમ અમલમાં શકે છે. અહીં મુખ્ય છે, અને તે કોઇપણ આદેશ વાક્ય દલીલો ન લેવા છે. હું આ પત્ર માટે એક અક્ષર કો જાહેર છું કે વપરાશકર્તા સાઇન લખો રહ્યું છે હું પછી પરિચિત ડુ ઉપયોગ જ્યારે લૂપ ફક્ત ખાતરી કરો કે વપરાશકર્તા ચોક્કસપણે મને મૂડી આપે એ ખાતરી કરવા માટે, અથવા બી અથવા સી .. Z, જેથી તેઓ મને એ અને ઝેડ વચ્ચે કંઈક આપો અને હવે હું શું કરી રહ્યો છું અહીં? છું હું "અથવા" 0x20 સાથે આ ing, પરંતુ તે ખરેખર છે જેમ જ - અને અમે પાછા એક ક્ષણ આ આવવું પડશે - 32. તેથી ફરીથી, 32 અહીં બિટ્સ આ પેટર્ન છે. અમે આ શા ખબર છે? જસ્ટ 0 સપ્તાહ પાછા વિચારો. આ 1 સે સ્થળ 2s સ્થળ, 4s, 8, 16s, 32s સ્થળ છે. તેથી આ પીળા નંબર 32 બને છે. હું પછી ઘરનાં પરચૂરણ કામો જેવા અક્ષર અહીં લાગી શકે છે, શબ્દશ: 32 નંબર સાથે bitwise "અથવા" તે, અને હું શું પાછી મેળવવા છે? કે ઘરનાં પરચૂરણ કામો ઓફ લોઅરકેસ આવૃત્તિ. એક ક્ષણ પહેલા, છતાં, હું એક અલગ આધાર નોટેશનમાં આ વ્યક્ત કરી હતી. આ શું પ્રતિનિધિત્વ કરી? >> [વિદ્યાર્થી] હેક્સાડેસિમલ. [Malan] આ હેક્સાડેસિમલ પ્રતિનિધિત્વ થાય છે. અમે ઘણી બધી છે કે હેક્સાડેસિમલ વિશે વાત કરી છે, પરંતુ તે વાસ્તવમાં આ જેવા કિસ્સાઓમાં અનુકૂળ છે. છતાં પણ તે વધુ જટિલ લાગે છે અને તેમ છતાં તે 20 અને 32 ન જેવી લાગે છે, તે તારણ છે કે હેક્સાડેસિમલ ખરેખર સુપર અનુકૂળ નોટેશનમાં છે કારણ કે હેક્સાડેસિમલ માં 0x પછી દરેક આંકડાના - અને આ કંઇ અર્થ છે; આ માત્ર માનવીય સંમેલન કે અહીં હેક્સાડેસિમલ નંબર આવે છે કહે છે - આ અંકોની દરેક, 2 એ અને પછી 0, પોતાની જાતને રજૂ કરી શકાય 4 બરાબર બિટ્સ સાથે. તેથી જો આપણે આ દો, મને એક ટેક્સ્ટ એડિટર અહીં ખોલવા - વિચિત્ર સ્વયંપૂર્ણ - જો આપણે થોડો લખાણ સંપાદક અહીં કરવા માટે, નંબર 0x20 અહીં અર્થ છે 4 બિટ્સ છે, અહીં અન્ય 4 બિટ્સ છે. ચાલો જમણીબાજુનીસ્થિતિ 4 બિટ્સ પ્રથમ નથી. 0 ત્યારે 4 બિટ્સ સાથે રજૂ શું છે? સરળ સુપર. જસ્ટ તમામ 0s. તેથી 0s તરીકે 4 બિટ્સ. તમે 2 કેવી રીતે પ્રતિનિધિત્વ કરી શકું? તે પછી થોડો સમય થયો અમે આ કર્યું, પરંતુ તે 0100 છે. તેથી આ 1 સે સ્થળ છે, આ 2s સ્થળ છે, અને પછી તે તો કોઈ વાંધો નથી કે અન્ય સ્થળોએ શું છે. અન્ય શબ્દોમાં, હેક્સાડેસિમલ માં તમે 0x20 કહેશે, પરંતુ જો તમે પછી શું 2 એ વિશે વિચારો અને તેને દ્વિસંગી કેવી રીતે રજૂ થાય છે, 0 ની શું છે અને તે કેવી રીતે દ્વિસંગી રજૂ થાય છે, તે પ્રશ્નોના જવાબો આ અને આ અનુક્રમે છે. તેથી 0x20 થી 8 બીટ્સ આ પેટર્ન પ્રતિનિધિત્વ થાય છે, જે ચોક્કસપણે આ માસ્ક કે અમે ઇચ્છતા હોય છે. તેથી આ ક્ષણ માટે જ એક બૌદ્ધિક કસરત છે, પરંતુ વાસ્તવિકતા એ છે કોડ તે સામાન્ય રીતે વધુ સામાન્ય છે આ જેવા સ્થિરાંકો લખી હેક્સાડેસિમલ કારણ કે પછી પ્રોગ્રામર પ્રમાણમાં સરળતાથી કરી શકો છો, પણ જો તે કેટલાક પેપર અને પેન્સિલ જરૂર છે, બહાર આકૃતિ બીટ્સ કે પેટર્ન શું છે કારણ કે તમે ફક્ત 0s અને 1 સે ન કોડ ખાસ કરીને વ્યક્ત કરી શકો છો. તમે 00010 ન જાય અને તેથી આગળ કરી શકો છો. તમે રેખાંશ અથવા હેક્સાડેસિમલ અથવા ઓક્ટલ અથવા અન્ય સંકેતો પસંદ હોય છે. મોટા ભાગના લોકો માટે હેક્સાડેસિમલ ફક્ત જેથી દરેક આંકડાના 4 બિટ્સ રજૂ પસંદ કરતા હોય છે અને તમે આ ઝડપી ગણિત કરી શકો છો. અને હું toupper છે, જે લગભગ એ જ સમયે મારા હાથ મોજું પડશે; તે લગભગ સમાન દેખાય છે. Toupper અથવા પરંતુ તેના બદલે આ વ્યક્તિ ઓપરેટર અને df ઉપયોગ થાય છે. Df શું પ્રતિનિધિત્વ કરે છે? df? કોઈપણ? >> [વિદ્યાર્થી] 255. 255? ન 255. કે એફએફ હશે. અમે થોડી કસરત તરીકે આ એક છોડી જાય છે. પરંતુ જો તમે 0 થી જાય છે, 1, 2, 3, 4, 5, 6, 7, 8, 9 અને પછી શું 9 પછી આવે છે? અમે અક્ષાંશ અંકો બહાર પ્રકારની છીએ, પરંતુ હેક્સાડેસિમલ શું 9 પછી આવે છે? [વિદ્યાર્થી] એ. >> તેથી, બી, સી, ડી. તમે બિટ્સ ડી વાસ્તવમાં રજૂ કયા પેટર્ન ત્યાંથી આકૃતિ કરી શકો છો. અને જો આપણે ગણિત કરવા માટે, અમે જોશો કે માસ્ક તમે અંત પાછા ફરવામાં આ સમાન છે. આ એફ, બધા 1 સે છે, અને આને છે. તેથી df કે માસ્ક રજૂ કરે છે. અધિકાર છે. અને છેલ્લે બનાવવા નથી, વસ્તુઓ અવાજ સુપર, સુપર તકનિકી, ધારવું પરંતુ અમે એક કાર્યક્રમ છે કે જે કરે લખવા માગતા હતા. મને આગળ વધો અને દ્વિસંગી છે, કે જે binary.c તરીકે ઓળખાતી ફાઈલ એક કાર્યક્રમ છે. અને હવે દો મને દ્વિસંગી ચલાવો અને મને એક પૂર્ણાંક બિન નકારાત્મક આપે છે. ચાલો 0 સરળ અને પ્રકાર શરૂ કરો. આ હવે કાર્યક્રમ છે કે જે બહાર તેના બાઈનરી રજૂઆતમાં પૂર્ણાંક છાપે છે. તેથી જો હું આ રમત ફરી રમવા અને ફક્ત 1 લખો, હું 1 નું પ્રતિનિધિત્વ 32-bit વિચાર કરીશું. જો હું આ 2 સાથે ફરીથી કરવા માટે, હું કે વિચાર કરીશું. જો હું 7 કરવું, હું ઓવરને અંતે થોડા 1 સે વિચાર અને તેથી આગળ કરીશું. તે વર્ષનું બહાર હું bitwise કામગીરી સાથે કારણ કે આ ઉલ્લેખ તમે ખરેખર એક અન્ય વસ્તુ તેમજ કરી શકો છો. તમે આ માસ્ક ગતિશીલ બનાવી શકો છો. આ એક અંતિમ bitwise કામગીરી સંડોવતા ઉદાહરણ પર એક નજર. અહીં કોડ પ્રથમ ભાગ છે, એક નંબર માટે વપરાશકર્તા પૂછવા, અને તે ભારપૂર્વક કહે છે કે તમે મને એક પૂર્ણાંક બિન નકારાત્મક આપે છે. જેથી જૂના શાળા સામગ્રી જેવું છે. પરંતુ અહીં કંઈક છે જે રસપ્રદ કિસ્સો છે છે. હું દ્વિસંગી એક નંબર છાપવા વિશે કેવી રીતે જવું છે? હું પ્રથમ શું ના શું ભારપૂર્વક કહેવું? શું એક ખાસ પૂર્ણાંક કદ સાધન, ઓછામાં ઓછું છે? >> [વિદ્યાર્થી] 4. તે 4 છે. તેથી 4 8 * 32 છે - 1 31 છે. તેથી જો હું 31 માંથી ગણતરી શરૂ છું, કે તે વળે છે, દર્શાવે છે, માત્ર ખ્યાલ પ્રમાણે, 31 બીટ અથવા સૌથી વધુ ઓર્ડર બીટ, જે અહીં પર આ વ્યક્તિની છે, જ્યારે આ બીટ 0 પ્રયત્ન રહ્યું છે. તેથી આ બીટ છે 01 ... 31 બીટ. તેથી આ કોડ શું કરે છે? લૂપ માટે આ નોટિસ, તેમ છતાં તે અદૃશ્ય જુએ છે, માત્ર 31 આવતા 0 થી વારો આવે છે. આ તે છે. તેથી રસપ્રદ ભાગ હવે આ 5 અહીં રેખાઓ હોવી આવશ્યક છે. નોંધ કરો કે આ રેખા હું ચલ કહેવાય માસ્ક જાહેર છું આ પીળા નંબરો અમારી વાર્તા સાથે સુસંગત છે. અને પછી આ શું કરે છે? આ બીજી bitwise ઓપરેટર અમે પહેલા, મોટા ભાગે જોવા મળતી નથી કર્યો છે. તે ડાબી પાળી ઓપરેટર છે. આ ઓપરેટર કરે છે. અહીં નંબર 1 છે, અને જો તમે મને પાળી, ડાબી પાળી છોડી, તમે શું વિચારો છો કે જે વ્યક્તિગત 1 થી કરવાનું અસર છે? શાબ્દિક તે સ્થળાંતર બનાવ્યા. તેથી જો નંબર 1 છે, તો તમે શું ડાબી બાજુ પર હોય છે અને તમે મને 31 થી પ્રારંભ દ્વારા શરૂ કરવા માટે, કે શું થઈ રહ્યું છે છો? તે આ નંબર 1 લો અને તેને અહીં પર 31 સ્થળોએ સ્થળાંતર બનશે. અને કારણ કે ત્યાં દેખીતી રીતે તેની પાછળ કોઈ અન્ય અંકો છે, તે મૂળભૂત રીતે 0s સાથે બદલાઈ આવશે. તેથી તમે બહાર નંબર 1, જે અલબત્ત આ જેવી લાગે સાથે શરૂ કરીશું - દો અને મને તે દોરવા ઉપર મધ્યમાં અહીં. અને ત્યાર બાદ તમે ડાબી વસ્તુઓ પાળી, આ વ્યક્તિ અનિવાર્યપણે આ રીતે જાય છે. પરંતુ જલદી છે કે જે તમને કરવા માટે, એક 0 ભરેલાં નહીં જો તમે તેને બીજી વાર પાળી છે, તે આ રીતે જાય છે અને અન્ય 0 ભરેલાં નહીં તમે તેને ફરીથી પાળી અને પછી બીજા 0 ભરેલાં નહીં તેથી જો તમે 1 આઈ 31 સ્થાનો << આ વસ્તુ હોય, તો તમે અંત એક માસ્ક મેળવવામાં જે 32 અક્ષરો લાંબો છે, leftmost એક જે 1 છે, જે બાકીના તમામ 0 છે. અને તે તારણ, એક અલગ તરીકે, આના જેવો ડાબી નંબર સ્થળાંતર પણ સાંયોગિક, અને ક્યારેક સરળ, આ નંબર પર શું કરી રહ્યા અસર છે? >> [વિદ્યાર્થી] તે ડબલિંગ. તે બમણી કારણ કે કૉલમ દરેક છે - 1 સે સ્થળ 2s સ્થળ, 4s સ્થળ 8 સ્થળ, 16s સ્થળ - બધા ડબલિંગ they're તરીકે તમે ડાબી પર જાઓ. અથવા બદલે, જ્યારે તમે 1 સે પાળી તમે અંત નંબર ની કિંમત બમણી રહ્યા છીએ. તમે અંત અંકો એક રસપ્રદ પરિવર્તન કરી શકો છો બધું સ્થળાંતર ઉપર 2 સત્તાઓ દ્વારા આ રીતે છે. તેથી આ કેવી રીતે કરે છે કામ? આ પછી મને એક માસ્ક કે જે ચોક્કસપણે તે જગ્યાએ હું તે કરવા માંગો છો 1 સિવાય તમામ 0s છે આપે છે, અને પછી આ અભિવ્યક્તિ છે, કે જે toupper.c માંથી ચોરી છે, છે ફક્ત કહ્યું હતું કે આ નંબર લાગી n એ તે વપરાશકર્તા માં ટાઇપ, "અને" તે માસ્ક સાથે, અને તમે શું મેળવવા જવું છે? તમે એક 1 વિચાર જો ત્યાં 1 એક છે કે મહોરું સ્થાન જઈ રહ્યાં છો, અથવા તમે એક 0 વિચાર જો નથી ત્યાં જઈ રહ્યાં છો. અને તેથી આ તમામ કાર્યક્રમ અસરકારક છે તે એક લૂપ છે, અને તે 1 સાથે અહીં પર માસ્ક, બનાવે તે પછી અહીં ઉપર 1 એક, પછી અહીં પર 1, અને તે આ bitwise અને યુક્તિ વાપરે કહેવું ત્યાં વપરાશકર્તાની અહીં ઇનપુટ એક bit 1 છે? ત્યાં વપરાશકર્તાની અહીં ઇનપુટ એક bit 1 છે? અને જો એમ હોય તો, શાબ્દિક 1 છાપો, બીજું 0 છાપો. અમે ints સાથે આ કરી રહ્યા છીએ કારણ કે માત્ર કે શા માટે આપણે 8 બદલે 32 બિટ્સ કરી રહ્યા છીએ, પરંતુ અમે તે પછી રચના કરી છે આ શું bitwise અને, આ bitwise અથવા છે, અને આ ડાબી પાળી ઓપરેટર, જે ઘણીવાર ઘણું મદદરૂપ ન હોય તો, પરંતુ તે વળે બહાર તેઓ પ્રયત્ન કરી શકો છો. હકીકતમાં, જો તમે બુલિયનો ઝાકઝમાળ કંઈક પ્રતિનિધિત્વ હતા માત્ર સાચી કે ખોટી પ્રતિનિધિત્વ ધારી, તમે કે નહીં ટ્રૅક રાખવા માગે છે એક 300 વિદ્યાર્થીઓ સંપૂર્ણ રૂમ હાજર છે, તમે પ્રકારના 300 કદ ઝાકઝમાળ bool જાહેરાત કરી કે જેથી તમે 300 bools વિચાર કરી શકે છે, અને તમે દરેક સાચું સુયોજિત જો કોઇ અહીં અને ખોટા અન્યથા શકે છે. કે માહિતી બંધારણ છે કે પ્રતિનિધિત્વ કેમ છે બિનકાર્યક્ષમ? શું કે માહિતી માળખું, 300 bools ઝાકઝમાળ ઓફ ડિઝાઇન વિશે ખરાબ છે? શું bool છે, હકીકત માં હૂડ નીચે? આ પણ કંઈક કે પરિચિત ન પણ હોઈ શકે છે. તે વર્ષનું બહાર ત્યાં કોઈ bool છે. યાદ રાખો કે અમે પ્રકારના બનાવનાર કે cs50.h ફાઇલ સાથે, પોતે જે પ્રમાણભૂત bool સમાવેશ થાય છે. સી પ્રકારની છે મૂંગું છે, જોકે, જ્યારે તે bool માટે આવે છે. તે 8 બીટ્સ વાપરે છે દર bool પ્રતિનિધિત્વ કરે છે, જે સંપૂર્ણપણે નકામું છે કારણ કે દેખીતી રીતે, કેટલા બિટ્સ તમે bool પ્રતિનિધિત્વ જરૂર છે? જસ્ટ 1. તેથી તે તારણ આપે છે કે જો હવે તમે bitwise ઓપરેટરો સાથે કરવાની ક્ષમતા હોય છે એક ઘરનાં પરચૂરણ કામો પણ એક બાઈટ પણ વ્યક્તિગત બિટ્સ, ચાલાકી, તે વર્ષનું બહાર તમે મૂર્ખ કંઈક પ્રતિનિધિત્વ જરૂરી મેમરી ઘટાડો કરી શકે છે 8 એક પરિબળ દ્વારા કે હાજરી રીતની માહિતી જેવું માળખું. આઠ બિટ્સ મદદથી સાચું કે ખોટું પ્રતિનિધિત્વ જગ્યાએ, તમે શાબ્દિક નો ઉપયોગ કરી શકે છે દરેક આઠ વિદ્યાર્થીઓ માટે વર્ગ એક બાઈટ ઉપયોગ કરીને તેમજ નીચી કક્ષાએ યુક્તિઓ આ પ્રકારના ઉપયોગ કરીને 0 થી 1 વ્યક્તિગત બિટ્સ માંથી toggling. કે ખરેખર ઊર્જા અંત આણ્યો. ત્યાં છે bitwise કામગીરી વિશે કોઈ પ્રશ્ન? યાહ. >> [વિદ્યાર્થી] ત્યાં એક વિશિષ્ટ કે ઓપરેટર છે? હા. એક વિશિષ્ટ કે ઓપરેટર કે આ જેવી લાગે છે, ^ છે, ગાજર પ્રતીક છે, કે જે માત્ર પ્રથમ વસ્તુ અથવા બીજો વસ્તુ 1 એ આઉટપુટ માટે પ્રયત્ન માટે 1 એક હોઈ શકે છે. ત્યાં પણ નથી, ~, જે તમે 1 અથવા ઉપ તેમજ રીતે એક 0 ઉથલાવવું માટે પરવાનગી આપશે. અને ત્યાં પણ અધિકાર પાળી ઓપરેટર, >> છે, જે એક આપણે જોયું વિરુદ્ધ છે છે. અધિકાર છે. ચાલો વસ્તુઓ ઊંચુ સ્તર હવે લો. અમે લખાણ વિશે વાત કરીને શરૂ કર્યું અને પછી તેને કોમ્પ્રેસ અને બિટ્સની ઓછી સંખ્યામાં સાથે લખાણ રજૂ; અમે કેવી રીતે અમે હવે bitwise સ્તર પર વસ્તુઓ હેરફેર શરૂ કરી શકો છો વિશે થોડી વાત કરી. ચાલો હવે બેક અપ પ્રતિનિધિત્વ થી 10,000 ફુટ ઝૂમ ગ્રાફિક્સ જેવી વધુ જટિલ બાબતો. અહીં અમે જર્મની એક ધ્વજ હોય ​​છે, અહીં આપણે એક ફ્રાન્સના છે. આ ફાઈલ બંધારણો તમે જાણતા હોય શકે રજૂ કરી શકે છે - GIFs, હમણાં પૂરતું. જો તમે ક્યારેય વેબ કે gif,. માં અંત થાય કર્યું છે છબી જોવા મળે છે, આ ગ્રાફિક્સ આદાનપ્રદાન ફોર્મેટ છે. આ બે અહીં પ્રકારના ફ્લેગો પોતાને સંકોચન માટે ઉધાર આપવું કદાચ દેખીતી શું કારણ? >> [અશ્રાવ્ય વિદ્યાર્થી જવાબ] ત્યાં પુનરાવર્તન ઘણાં અધિકાર છે? ક્રમમાં માતાનો જર્મની ધ્વજ મોકલવા માટે બનાવવા માટે, સ્ક્રીન પર એક છબી હોવાથી આ લાગે છે તમારા સ્ક્રેચ દિવસમાં બેક. તમે યાદ કરી શકે છે કે ત્યાં વ્યક્તિગત પિક્સેલ્સ અથવા બિંદુઓ કે એક છબી કંપોઝ છે. ત્યાં કાળા બિંદુઓ અને કાળા બિંદુઓને અન્ય સંપૂર્ણ પંક્તિ સંપૂર્ણ પંક્તિ છે. ત્યાં કાળા બિંદુઓને પંક્તિઓ છે કે અમે જો આપણે ખરેખર માં ઝૂમ કરેલું જુઓ શકે છે સમૂહ છે, બહુ ગમે ત્યારે અમે રોબ ચહેરો પર ફોટોશોપ માં ઝૂમ કરેલું. જલદી અમે ઊંડા અને ઊંડા અને ઇમેજ ઊંડે મળ્યું, તમે pixelation જોયા છે, ચોરસ કે જે કિસ્સામાં તેની આંખ બનેલા તમામ શરૂ કર્યું. જ અહીં સોદો. જો આપણે થોડો માં ઝૂમ કરેલું હોય, તો તમે વ્યક્તિગત બિંદુઓ જોઈ શકશે નહીં. વેલ, આ બિટ્સની કચરો પ્રકારની છે. જો ધ્વજ ત્રીજા કાળા છે અને ધ્વજ ત્રીજા પીળા અને તેથી આગળ છે, અમે અચાનક શા માટે આ ધ્વજ નથી સંકુચિત કરી શકે છે? અને પણ ફ્રેન્ચ ધ્વજ ભલે પેટર્ન થોડુંક અલગ છે સંકુચિત થઈ શકે છે. તે તારણ એ GIF ફાઇલ ફોર્મેટ લોસલેસ સંકોચન બંધારણ છે, જેનો અર્થ છે કે તમે જર્મન ફ્લેગ છબી અહીં લઈ શકે છે, તમે દૂર ગુણવત્તા ભોગ આપ્યા વગર તેના બિટ્સ ઘણો ફેંકવું કરી શકો છો. આ JPEGs કંઈક વિપરીત છે, જેની સાથે અમને મોટા ભાગના કદાચ વધુ પરિચિત. ફેસબુક ફોટા અને Flickr ફોટા અને આ રીતે તે લગભગ હંમેશા JPEGs તરીકે સાચવવામાં જ્યારે તેઓ અપલોડ કરી રહ્યાં છો, LOSSY - - બંધારણમાં જેમાં તમે દૂર બિટ્સ ફેંકવું પણ JPEGs એક lossy છે પરંતુ તમે પણ દૂર ગુણવત્તા ફેંકો. અને તેથી જો તમે ફોટોશોપ સાથે ફોટા સંકુચિત અથવા તેમને Facebook પર અપલોડ અથવા તેમને ખરેખર ખરાબ ફોન પર લે છે, તમે જાણો છો કે ચિત્ર ખૂબ splotchy અને pixelated વિચાર શરૂ કરે છે, અને તે છે કારણ કે તે કમ્પ્યુટર અથવા ફોન દ્વારા કરવામાં આવી સંકુચિત છે દ્વારા શાબ્દિક માહિતી દૂર ફેંકવાની. પરંતુ GIF આશ્ચર્યજનક છે કે તે ઓછા બિટ્સ ઉપયોગ તે કદાચ મૂળભૂત દ્વારા કરતાં શકો છો કોઈપણ માહિતી ખોયા વિના. અને તે આવશ્યકપણે આવું કરે તરીકે અનુસરે છે. તેના બદલે એક બીએમપી જેવી ફાઈલ સ્ટોર કરતાં છો કાળો, કાળી, કાળી કાળી માટે RGB ટ્રિપલ, કાળો, કાળી, કાળી કાળી, કાળી કાળી, કાળી કાળી અને તેથી આગળ, તેના બદલે, આ GIF બંધારણ કહે છે, રહ્યું છે "," બ્લેક અને પછી, "આ 100 વખત પુનરાવર્તન", અથવા કે જે કંઈક. "બ્લેક, આ 100 વખત, કાળા પુનરાવર્તન, આ 100 વખત પુનરાવર્તન ..." "પીળા, આ 100 વખત પુનરાવર્તન કરો." અને તેથી તે યાદ છે, જરૂરીયાતમાં, તો leftmost પિક્સેલ અને પછી કોઈક કે પિક્સેલ ફરીથી અને ફરીથી પુનરાવર્તન કલ્પના એનકોડ કરે છે. તેથી GIFs પછી પોતાને કોઈપણ માહિતી ખોયા વિના સંકુચિત કરી શકો છો. પણ જો તમે ધારી, જો કે અલગોરિધમ કે જે GIFs છે હતા, આ ફ્લેગ છે કે, તેમ છતાં તેઓ કદમાં સમાન દેખાય છે, છે નાની હશે જ્યારે GIF તરીકે ડિસ્ક પર સાચવી? >> [વિદ્યાર્થી] જર્મની. જર્મની નાના હોવાનું રહ્યું છે? શા માટે? આડા [વિદ્યાર્થી] કારણ કે તમે તેને પુનરાવર્તન ઘણી વખત અને પછી તમે બીજું સમય પુનરાવર્તન કરો. ચોક્કસ. >> કારણ કે જે લોકો GIF શોધ માત્ર પ્રકારની આપખુદ નિર્ણય કર્યો કે પુનરાવર્તન આડી નથી અને પછીથી લિવરેજ કરવામાં આવશે. ત્યાં જર્મન ધ્વજ માં ઘણો વધારે મળી અહીં ફ્રેન્ચ ધ્વજ કરતાં પુનરાવર્તન છે. તેથી જો આપણે ખરેખર મારી હાર્ડ ડ્રાઈવ પર ફોલ્ડર કે આ GIFs છે ખોલવા માટે, તમે ખરેખર જુઓ કે જર્મન અહીં ધ્વજ 2 કિલોબાઈટોમાં છે અને ફ્રેન્ચ એક 4 કિલોબાઇટ શકે છે. તે સંયોગ બને છે કે એક વખત અન્ય છે, પરંતુ તે હકીકત માં કેસ કે ફ્રેન્ચ ધ્વજ ખૂબ મોટી છે છે. તેમ છતાં અમે અહીં ગ્રાફિક્સ વિશે વાત કરી રહ્યાં છો, તે જ વિચારો માટે અરજી કરી શકો છો ફ્લેગ પરંતુ છબીઓ જે થોડા વધુ જટિલ છે જેમ વસ્તુઓ. જો તમે એક સફરજન એક ચિત્ર લો, મક્કમતાપૂર્વક ત્યાં નકલ ઘણો ત્યાં છે, તેથી અમે કોઈક યાદ છે કે જે મૂળભૂત પૃષ્ઠભૂમિ વાદળી છે શકે છે અને તરીકે ચિત્ર જમણા હાથ નહીં સૂચવે છે, આ ચિત્ર માં દરેક એક પિક્સેલ રંગ યાદ છે. તેથી અમે બિટ્સ દૂર માહિતી ખોયા વિના ત્યાં ફેંકવું કરી શકો છો. આ સફરજન હજુ હમણાં જ દેખાય છે. આ અહીં ઉદાહરણ, તમે જોઈ શકો કે કયા ફિલ્મ બને. આ જૂની શાળાના ફિલ્મ જેમાં ટોચની ત્યાં છબી reels પ્રતિનિધિત્વ તમે ઘર ભૂતકાળમાં એક આરવી ડ્રાઇવિંગ અને એક વૃક્ષ હોય છે. અને તે વાન ડાબેથી જમણે બનાવ્યો, શું ચોક્કસપણે નથી બદલાતા છે? આ ઘર ગમે ત્યાં નથી જઈ રહ્યા છે, અને વૃક્ષ ગમે ત્યાં નથી જઈ રહ્યા છે. આ જ વસ્તુ છે કે જે ખસેડવા છે આ કિસ્સામાં વાન છે. જેથી અપરિવર્તિત સામાજિક સૂચવે છે કે, તમે શું ફિલ્મોમાં કરી શકો છો છે એ જ રીતે માત્ર દૂર માહિતી ફ્રેમ્સને વચ્ચે ફેરફાર થતો નથી ફેંકો. આ સામાન્ય રીતે interframe સંકોચન તરીકે ઓળખાય છે જેમાં જો આ ફ્રેમ લગભગ એક આ સમાન લાગે છે, ચાલો સંતાપ નથી ડિસ્ક પર સમાન કોઈપણ જાણકારી સંગ્રહવા આ મધ્યવર્તી ફ્રેમ્સ પર, ચાલો માત્ર કી ફ્રેમ્સ જ્યારે એક વખત ઉપયોગ કે વાસ્તવમાં તે માહિતી redundantly જ થોડો સેનીટી તપાસ સ્ટોર કરે છે. તેનાથી વિરુદ્ધમાં, કોમ્પ્રેસ વિડિઓ પર અન્ય અભિગમ આ બીજા અને નીચલા અહીં ઉદાહરણ છે, જ્યાં સ્ટોર બદલે 30 ફ્રેમ્સ, તમે માત્ર શા માટે નથી 15 બીજા ફ્રેમ્સ નથી ને બદલે સ્ટોર? ઊલટાનું સુંદર સંપૂર્ણપણે, વહેતી એ ફિલ્મ પ્રકારની કરતાં, તે જેમ તે થોડો, થોડી જૂની શાળા છે stuttering જુઓ શકે છે, પરંતુ ચોખ્ખી અસર ઘણી ઓછી બીટ્સ કરતાં અન્યથા જરૂરી હોઇ શકે છે ઉપયોગ થશે. તેથી જ્યાં આ પછી નથી અમને છોડી? કે બીજું કે જ્યાં તમે સંકોચન સાથે જઇ શકો છો પર એક અલગ એક બીટ હતી. પર વધુ માટે, CS175 અહીં જેવા વર્ગ લે છે. અહીં વિડિઓ અંદર બીજું ઉદાહરણ છે. જો મધમાખી એક માત્ર ખસેડવાની વસ્તુ છે, તમે ખરેખર દૂર તે મધ્યમ ફ્રેમમાં શકે માહિતી ફેંકવું કારણ કે ફૂલો અને આકાશ અને પાંદડા નથી બદલાતા રહે છે. દો પરંતુ હવે એક છેલ્લો વસ્તુ ધ્યાનમાં રાખો. આગામી 5 મિનિટમાં અમે પાછળ સી કાયમ રજા વ્યાખ્યાન છે? હા. , જોકે psets નથી. સી વિશે છેલ્લું વાર્તા અને પછી અમે ખૂબ જ સેક્સી સામગ્રી મેળવવા HTML અને વેબ અને વુ-હુ સંડોવતા. અધિકાર છે. અહીં અમે જાઓ. કે પ્રેરણા છે. તે આ બધા સમય જ્યારે અમે કાર્યક્રમો અમે રણકાર સ્કોર કરવામાં લખી છે કરે છે. અને રણકાર આપણે પ્રથમ ઘટનાએ સપ્તાહ થી કહ્યું કર્યું છે, સ્ત્રોત કોડ લે છે અને તે પદાર્થ કોડમાં ફેરવે છે. તે સી લે છે અને તે 0s અને 1 સે માં ફેરવે છે. હું પ્રકારની થોડા અઠવાડિયા માટે કરી રહ્યો તમે નીચાણવાળા કારણ કે તે તદ્દન તરીકે કે સરળ નથી. ત્યાં વધુ ઘણો હૂડ નીચે રહ્યું છે જ્યારે તમે રણકાર જેવો કાર્યક્રમ ચલાવવા છે. હકીકતમાં, કાર્યક્રમ કમ્પાઇલ કરવાની પ્રક્રિયા ખરેખર સારાંશ કરી શકાય છે, તમે કમ્પાઇલરોનો પર રોબ વિડિઓ પરથી યાદ હોઈ શકે છે, આ 4 પગલાંઓ માં: પૂર્વ પ્રક્રિયા છે, પોતાને સંકલન, એસેમ્બલ, અને જોડે છે. પરંતુ વર્ગ આપણે અને વિશ્વના મોટા ભાગના લોકો સામાન્ય રીતે આ પગલાંઓ તમામ સારાંશ તરીકે ફક્ત "કમ્પાઇલ." પરંતુ જો આપણે આ જેવા સ્રોત કોડ સાથે શરૂ યાદ છે, આ કદાચ સરળ સી પ્રોગ્રામ છે તેથી અમે અત્યાર સુધી તેવા પરચૂરણ ખર્ચ કર્યો છે, યાદ છે કે જ્યારે સંકલિત તે આ જેવા શોધી અંત થાય છે. પરંતુ ખરેખર એક મધ્યવર્તી પગલું છે, અને તે પગલાંઓ નીચે પ્રમાણે છે. પ્રથમ ત્યાં ખૂબ જ આ અને અમારા કાર્યક્રમોનું સૌથી ટોચ પર આ વાત છે, # સમાવેશ થાય છે શું # અમારા માટે સમાવેશ થતો નથી કરતું? મારા ફાઇલમાં તે ખરેખર ખૂબ નકલો અને pastes stdio.h સમાવિષ્ટો જેથી શા માટે? હું stdio.h સમાવિષ્ટો વિશે શા માટે કાળજી કરું? શું હિત ત્યાં છે? માતાનો Printf જાહેરાત, તેના પ્રોટોટાઇપ, જેથી કમ્પાઇલર પછી જાણે હું શું અર્થ જ્યારે હું આ કાર્ય printf ઉલ્લેખ કરો. તેથી કમ્પાઇલ 1 માં પગલું છે પૂર્વ પ્રક્રિયા છે જેમાં, રણકાર જેવો કાર્યક્રમ અથવા અમુક મદદગાર કાર્યક્રમ છે કે જે ખણખણાટ સાથે આવે નીચે તમારો કોડ ટોચ વાંચે છે, ડાબેથી જમણે, અને કોઇપણ સમયે તે પ્રતીક # જુએ સમાવેશ થાય છે જેમ કે મુખ્ય શબ્દ દ્વારા અનુસરવામાં, તે ક્રિયા કરે છે, નકલ અને તમારી ફાઈલ આ કેસ stdio.h માં પેસ્ટ. પગલા 1 છે. પછી તમે બહુ મોટા વિશાળ નકલ, પેસ્ટ નોકરી કે જે હમણાં જ થયું છે, કારણ કે સી ફાઈલ હોય છે. પગલું 2 હવે કમ્પાઇલ થાય છે. પરંતુ તે તારણ કમ્પાઇલ સ્રોત કોડ કે આ જેવી લાગે લે છે અને તે કંઈક કે આ જેવી લાગે છે પ્રવેશ કરે, જે તે પરિચિત માટે કહેવાય છે? >> [વિદ્યાર્થી] એસેમ્બલી. >> એસેમ્બલી ભાષા. આ ખરેખર કંઈક જો તમે CS61 લઇ તમે વધુ વિગતવાર ડાઇવ પડશે છે. આ માત્ર છે તે વિશે તરીકે નજીક તમે તમારી જાતને 0s અને 1 સે લખવા માટે વિચાર કરી શકો છો પરંતુ એવી રીતે છે કે જે હજુ ઓછામાં ઓછા અર્થમાં એક થોડો બનાવે વસ્તુઓ લખ્યું. આ મશીન સૂચનો હોય છે, અને જો આપણે મુખ્ય કાર્ય કરવા માટે નીચે સરકાવો અહીં, નોંધ્યું છે કે ત્યાં આ દબાણ સૂચના છે, સુચના ખસેડવા માટે, સૂચના સબ્ટ્રેક્ટ, સૂચના કહી, અને તેથી આગળ. , જ્યારે તમે સાંભળો કે જે તમારા કમ્પ્યુટરને ઇન્ટેલ ઇનસાઇડ છે તમે તમારા Mac અથવા પીસી માં ઇન્ટેલ CPU ભાર હોય છે, કે શું અર્થ છે? એ CPU ભાર ઇન્ટેલ ચોક્કસ સૂચનો સમજવા જેવી કંપનીઓ દ્વારા બાંધવામાં આવે છે. તેઓ કોઇ વિચાર સ્વેપ જેવા કાર્યો કયા છે અથવા મુખ્ય દીઠ સે હોય છે, પરંતુ તેઓ જાણતા નથી, જેમ કે ખૂબ જ ઓછી સ્તર સૂચનો શું ઉમેરવા માટે, સબ્ટ્રેક્ટ, દબાણ, ખસેડવા માટે, કૉલ, અને તેથી આગળ છે. તેથી, જ્યારે તમે એસેમ્બલી ભાષામાં સી કોડ કમ્પાઇલ તમારા ખૂબ વપરાશકર્તા કોડ અનુકૂળ દેખાવ કંઈક કે આ જેવી લાગે છે રૂપાંતરિત કરવામાં આવે છે, કે શાબ્દિક આસપાસ અને CPU ની બહાર જેમ કે નાના એકમોમાં બાઇટ્સ અથવા 4 બાઇટ્સ ખસે છે. પરંતુ છેલ્લે, જ્યારે રણકાર તમારા કાર્યક્રમ આ પ્રતિનિધિત્વ લેવા તૈયાર છે 0s અને 1 સે, પછી ભેગા કહેવાય પગલું થાય છે માં, અને આ બધા ફરીથી એક આંખના પટપટાવાનું બને ત્યારે રણકાર ચાલી રહ્યું છે. અમે અહીં શરૂ કરવા માટે, તેને આ જેવા ફાઈલ આઉટપુટો, અને પછી તેને આ 0s અને 1 સે ફેરવે છે. અને જો તમે અમુક સમયે પાછા જાઓ અને ખરેખર ક્રિયા આ જોવા માંગો છો, - જો હું hello1.c-આ એક ખૂબ જ પ્રથમ કાર્યક્રમો અમે અંતે જોવામાં આવે છે જાય સામાન્ય રીતે અમે રણકાર hello1.c સાથે આ કમ્પાઇલ અને આ અમને a.out આપી થશે. તેનાથી વિપરીત જો તમે તેના બદલે તે એસ ધ્વજ આપવા માટે, તમે મળશે શું hello1.s છે અને તમે ખરેખર એસેમ્બલી ભાષા જોશો. હું ખૂબ જ ટૂંકા કાર્યક્રમ માટે આ કરી રહ્યો છું, પરંતુ જો તમે ભાંખોડિયાંભર થઈને માટે પાછા જાઓ અથવા પુનઃપ્રાપ્ત અથવા કોઇ કાર્યક્રમ તમને તેવા પરચૂરણ ખર્ચ કર્યો છે અને બસ ઉત્સુકતાનું તે જોવા માટે તેને ખરેખર શું લાગે છે કે, શું ખરેખર એ CPU માં ફેડના કરવામાં આવી રહી છે માંગો છો, તમે ખણખણાટ સાથે એસ ધ્વજ વાપરી શકો છો. પરંતુ તે પછી છેલ્લે, ત્યાં હજુ પણ એક gotcha છે. અહીં 0s અને 1 સે કે હેલ્લો વિશ્વમાં, મારા અમલીકરણ પ્રતિનિધિત્વ છે. પરંતુ, મને મારા કાર્યક્રમમાં કોઈના કાર્ય વપરાય છે. તેથી ભલે પ્રક્રિયા કરવામાં આવ્યો છે હું hello.c લે છે, તે વિધાનસભા કોડ માં કમ્પાઇલ નહીં, અને તે પછી તેને 0s અને 1 સે માં એસેમ્બલ નહીં, આ 0s માત્ર અને 1 સે કે સમય માં આ બિંદુએ outputted છે મારો કોડ માંથી પરિણામે થાય છે. પરંતુ જે વ્યક્તિ printf લખ્યું હતું કે, તેઓ તેમના કોડ 20 વર્ષ પહેલા સંકલિત અને તેને હવે ઉપકરણ પર છે ક્યાંક સ્થાપિત કરો, તેથી અમે કોઈક મારા 0s અને 1 સે સાથે તેના અથવા તેણીના 0s અને 1 સે મર્જ હોય ​​છે, અને તે અમને કમ્પાઇલ 4 થા અને અંતિમ પગલું લિંક તરીકે ઓળખાય છે લાવે છે. તેથી બાજુ ડાબા હાથ પર અમે પહેલાની જેમ જ ચોક્કસ ચિત્ર છે: hello.c બને વિધાનસભા કોડ 0s અને 1 સે બને છે. યાદ પરંતુ મને મારો કોડ માં ધોરણ I / O લાઇબ્રેરી ઉપયોગ થાય છે, અને તે કે કમ્પ્યુટર પર ક્યાંક અર્થ થાય છે ત્યાં એક stdio.c તરીકે ઓળખાતી ફાઈલ છે અથવા ઓછામાં ઓછી સંકલિત આવૃત્તિ તેના કારણે કેટલાક વર્ષો પહેલાં કોઈને વિધાનસભા કોડમાં stdio.c સંકલિત અને પછી 0s અને 1 સે સંપૂર્ણ જથ્થો. આ એ છે જે એક સ્થિર અથવા ગતિશીલ લાઇબ્રેરી તરીકે ઓળખાય છે. તે કેટલાક ઉપકરણ ક્યાંક બેસીને ફાઈલ છે. પરંતુ છેલ્લે, હું મારા 0s અને 1 સે લઇ જાય છે અને તે વ્યક્તિ ની 0s અને 1 સે અને કોઈક તેમને એકસાથે લિંક, શાબ્દિક ભેગા તે 0s અને 1 સે એક a.out અથવા hello1 અથવા જે કહેવાય ફાઇલમાં હું મારા કાર્યક્રમ તરીકે ઓળખાય છે જેથી ઓવરને પરિણામ 1 સે અને 0s કે મારા કાર્યક્રમ તૈયાર કરીશું તમામ ધરાવે છે. આ બધા સમય આ સત્ર જ્યારે તમે રણકાર નો ઉપયોગ કરી રહ્યો છે, જેથી અને હજુ પણ વધુ તાજેતરમાં ચાલી બનાવવા માટે ક્રમમાં રણકાર ચલાવવા માટે, આ પગલાંઓ તમામ તત્કાલ કરવામાં આવ્યા છે સૉર્ટ થઈ રહ્યું છે પરંતુ ખૂબ જ ઈરાદાપૂર્વક. અને તેથી જો તમે કોમ્પ્યુટર વિજ્ઞાન પર ચાલુ રાખવા માટે, CS61 નામ અનુસાર, આ સ્તર કે જે તમે છાલ ત્યાં બોલ પાછા ચાલુ રાખીશું છે કાર્યક્ષમતા, સુરક્ષા અસરો, અને આ નીચા સ્તરે વિગતો જેવી વાત. પરંતુ તે સાથે, અમે સી પાછળ છોડી રહ્યાં છો. ચાલો આગળ વધો અને અમારા વિરામ 5-મિનિટ હવે લે છે, અને જ્યારે અમે પાછા આવો: ઇન્ટરનેટ. અધિકાર છે. અમે પાછા છે. હવે અમે માત્ર HTML અમારા દેખાવ શરૂ કારણ કે, તમે જેમ જોશે, પોતે HTML ખરેખર ખૂબ સરળ પરંતુ વેબ પ્રોગ્રામીંગ પર વધુ સામાન્ય રીતે ખરેખર, વધુ સામાન્ય રીતે નેટવર્કીંગ, અને કેવી રીતે આ ટેકનોલોજી ભેગા થવું અમને ઈન્ટરનેટ ટોચ ઘણી વધુ આધુનિક કાર્યક્રમો બનાવવા માટે પરવાનગી આપે છે આમ અત્યાર સુધી કરતાં અમે કરવાનો આ કાળા અને સફેદ બારીઓ હતા. ખરેખર, સત્ર આ તબક્કે પણ છતાં અમે પ્રમાણમાં ઓછો સમય ખર્ચ કરશે PHP, એચટીએમએલ, સીએસએસ, જાવાસ્ક્રીપ્ટ, એસક્યુએલ અને વધુ પર, સૌથી વધુ વિદ્યાર્થીઓ ઓવરને કરવા ઉપર અંતિમ પ્રોજેક્ટ છે કે વેબ આધારિત છે કરી કારણ કે જેમ તમે જોઈ શકશો, પૃષ્ઠભૂમિ હવે તમે સી હોય ખૂબ ખૂબ છે આ ઉચ્ચ કક્ષાની ભાષાઓ માટે લાગુ પડતા હોય. અને જેમ તમે તમારી અંતિમ પ્રોજેક્ટ વિશે વિચારવાનો શરૂ કરવા માટે, જે, પ્રોબ્લેમ 0 સેટ જેવા જ છે, જ્યાં તમે પ્રોત્સાહન આપવામાં આવ્યું હતું માટે સ્ક્રેચ તમને રસ સૌથી કંઈપણ કરવા માટે, અંતિમ પ્રોજેક્ટ તમારા માટે C સાથે તમારા મળેલી નવી જ્ઞાન અને સમજ લેવા તક છે અથવા PHP અથવા JavaScript અથવા સ્પિન માટે બહાર ગમે અને તમારા માટે જુઓ વિશ્વ માટે સોફ્ટવેર ખૂબ જ પોતાના ભાગ બનાવો. અને તમે તમારા વિચારો સાથે બીજ જાણવા, કે તમે અહીં વડા કરી શકે છે, projects.cs50.net. દર વર્ષે, અમે કેમ્પસ પર શિક્ષકો અને સ્ટાફ ના વિચારો અને વિદ્યાર્થી જૂથો ભેગા માત્ર રસપ્રદ વસ્તુઓ છે કે જે કમ્પ્યૂટરનો ઉપયોગ કરીને ઉકેલી શકાય છે માટે તેમના વિચારો સબમિટ કરવા માટે, વેબસાઇટ્સ મદદથી, સોફ્ટવેર વાપરી રહ્યા હોય. તેથી જો તમે તમારી પોતાની એક વિચાર આંબવું સંઘર્ષ કરી રહ્યાં છો, દ્વારા બધા અર્થ વિચારો દ્વારા ત્યાં સ્ક્રોલ આ વર્ષે અને છેલ્લા છે. તે સંપૂર્ણપણે એક પ્રોજેક્ટ છે કે જે પહેલાં કરવામાં નાથવામાં છે હલ ઠીક છે. અમે કેમ્પસ પર લોન્ડ્રી સ્થિતિ જોઈને ઘણા એપ્લિકેશન્સ જોવા મળ્યો છે, ડાઇનિંગ હોલ મેનુ શોધખોળ માટે ઘણી એપ્લિકેશન્સ, આ કોર્સમાં catalog અને આ રીતે શોધખોળ માટે ઘણી એપ્લિકેશન્સ. અને ખરેખર, ભવિષ્યના વ્યાખ્યાન અને ભાવિ સેમિનારોમાં, અમે તમને કેટલાક જાહેરમાં ઉપલબ્ધ API પર દાખલ, બંને વ્યાપારી રીતે ઉપલબ્ધ થશે અહીં તેમજ ઉપલબ્ધ CS50 કેમ્પસ પર કે જેથી તમે ડેટાની ઍક્સેસ હશે અને પછી તેની સાથે રસપ્રદ વસ્તુઓ કરી શકે છે. તેથી થોડા દિવસોમાં આખરી પ્રોજેક્ટ પર વધુ જ્યારે અમે સ્પષ્ટીકરણ પ્રકાશિત, પરંતુ હવે જાણે છે, કે જે તમે સોલો એક અથવા બે મિત્રો સાથે અથવા કામ કરી શકે છે તમારા માટે સૌથી રસ કોઇપણ પ્રોજેક્ટ પર. ઇન્ટરનેટ. તમે આગળ વધો અને તમારા લેપટોપ ખેંચે છે, તમે પ્રથમ વખત facebook.com પર જાઓ, એવું તાજેતરમાં લૉગ ઇન નથી, અને હિટ દાખલ કરો. ખરેખર શું થાય છે? જ્યારે તમે તમારા કમ્પ્યુટર પર દાખલ દબાવો, પગલાંઓ સંપૂર્ણ જથ્થો જાદુઇ થઈ રહ્યું જેવું શરૂ કરો. તેથી ડાબી, Facebook જેવી વેબ સર્વર પર અહીં તમે જમણી બાજુ પર અહીં છે, અને કોઈક તમે આ HTTP, હાઇપરટેક્સ્ટ ટ્રાન્સફર પ્રોટોકોલ તરીકે ઓળખાય ભાષાનો ઉપયોગ કરી રહ્યા છો. એચટીટીપી પ્રોગ્રામીંગ ભાષા નથી. તે એક પ્રોટોકોલ વધુ છે. તે સંમેલનો કે વેબ બ્રાઉઝર્સ અને વેબ સર્વરો વાપરો જ્યારે intercommunicating એક સમૂહ છે. અને આ અર્થ શું નીચે પ્રમાણે છે. ખૂબ વાસ્તવિક દુનિયામાં ગમે, અમે આ સંમેલનના છે જ્યાં જો તમે પ્રથમ વખત કેટલાક માનવ મળવા, જો તમે મને અહીં humoring વાંધો નથી, હું તમને આવે છે, કહે છે, હોઈ શકે છે "હાય, મારું નામ ડેવિડ છે." >> હાય, ડેવિડ. મારું નામ સામી છે. "હાય, ડેવિડ. મારું નામ સામી છે." તેથી હવે અમે ફક્ત આ બોલ પર કોઈ માનવ પ્રોટોકોલ આ પ્રકારની માં વ્યસ્ત છે જ્યાં હું પ્રોટોકોલ શરૂ કરી છે, સામી આપ્યો છે, અમે હાથ હચમચી કરી લો, અને વ્યવહાર સંપૂર્ણ છે. HTTP ખૂબ ભાવના સમાન હોય છે. જ્યારે તમારું વેબ બ્રાઉઝર અરજીઓ www.facebook.com, તમારા બ્રાઉઝરમાં ખરેખર કરવાનું છે તેના હાથ વિસ્તરે છે, તેથી બોલે છે, સર્વર અને તેને એક સંદેશ મોકલવાનો છે. તમે શું મેળવવા માંગો છો નથી - અને તે સંદેશ ખાસ કરીને બતાવ્યું કંઈક છે? - મને ઘર પાનું, કે જે સામાન્ય રીતે એક URL ઓવરને અંતે એક સ્લેશ દ્વારા સૂચિત કરવામાં આવે છે મેળવો. અને એ જ તમને ખબર ભાષા શું હું બોલતા છું, હું બ્રાઉઝર તમે કહો જાઉં છું કે હું HTTP 1.1 આવૃત્તિ બોલતા છું, અને પણ યોગ્ય માપ માટે, હું તમને કહી જાઉં છું કે યજમાન કે હું ઘરની પાનું માંગો છો facebook.com છે. ખાસ કરીને, વેબ બ્રાઉઝર, તો તમે અજ્ઞાત, માનવ, ઇન્ટરનેટ તરફ આ સંદેશ મોકલે છે જ્યારે તમે ખાલી www.facebook.com લખો તમારા બ્રાઉઝરમાં દાખલ કરો. અને Facebook શું સાથે પ્રતિસાદ કરે છે? કેટલાક સમાન દેખાવ વિસ્મૃત પણ વિગતો ખૂબ વધારે પ્રતિક્રિયા આપે છે. દો મને ફેસબુક ઘર પાનું સુધીનું અહીં જાઓ. આ સ્ક્રીનમાં કે જે અમને મોટા ભાગના કદાચ તમને સમય તમામ લોગ ઇન રહેવાની ક્યારેય છે, પરંતુ આ ખરેખર તેમના મુખ પૃષ્ઠ છે. જો અમે Chrome માં આવું નોટિસ, કે જે તમે આ થોડો સંદર્ભ મેનુઓ ખેંચી શકે છે. Chrome નો ઉપયોગ કરી, શું મેક ઓએસ, વિન્ડોઝ, Linux, અથવા જેમ પર, જો તમે ક્લિક કરો અથવા ડાબી ક્લિક નિયંત્રિત છે, તો તમે સામાન્ય રીતે એક મેનૂ છે કે આ જેવી લાગે છે ખેંચી શકે છે, જ્યાં થોડા વિકલ્પો રાહ જોવી, એક જે જુઓ પૃષ્ઠ સ્રોત છે. તમે પણ ખાસ કરીને જુઓ મેનુમાં જઇને અને આસપાસ poking દ્વારા આ બધી વસ્તુઓ માટે મેળવી શકો છો. હમણાં પૂરતું, જુઓ હેઠળ અહીં, વિકાસકર્તા એ જ વસ્તુ છે. હું આગળ જાઓ અને જુઓ પૃષ્ઠ સ્રોત જોવા જાઉં છું. તમે જોશો શું છે તે HTML કે માર્ક માટે facebook.com પ્રતિનિધિત્વ તેવા પરચૂરણ ખર્ચ કર્યો છે. તે સંપૂર્ણ વાસણ અહીં, પણ અમે જોશો કે આ થોડા વધારે અર્થપૂર્ણ બને લાંબા પહેલાં. પરંતુ અમુક અહીં પેટર્ન હોય છે. મને કરવા માટે નીચે સરકાવો આ જેવી સામગ્રી. આ મુશ્કેલ છે માટે એક માનવ વાંચો, પરંતુ નોંધ્યું છે કે ત્યાં કોણ કૌંસ આ પેટર્ન વિકલ્પ કિંમત જેમ કીવર્ડ્સ, કેટલાક નોંધાયેલા શબ્દમાળાઓ જેવા કીવર્ડ્સ સાથે. આ તે છે જ્યાં, જ્યારે તમે પહેલીવાર સમય, સ્પષ્ટ તમારી જન્મ વર્ષ શું છે માટે સાઇન અપ કર્યું. જન્મ વર્ષ કે ડ્રોપ ડાઉન મેનુ કોઈક અહીં એનકોડ હોય છે, આ HTML, હાઇપરટેક્સ્ટ માર્કઅપ લેંગ્વેજ કહેવાય ભાષામાં. અન્ય શબ્દોમાં, જ્યારે તમારું બ્રાઉઝર વેબ પાનું વિનંતી તે આ HTTP કહેવાય સંમેલન બોલે છે. પરંતુ facebook.com શું નથી કે અરજી પ્રતિસાદ? આ ભેદી સંદેશાઓ કેટલાક પ્રતિભાવ આપે છે, કારણ કે અમે એક ક્ષણ જોઈ શકશો. પરંતુ તેના પ્રતિભાવમાં સૌથી HTML, હાઇપરટેક્સ્ટ માર્કઅપ લેંગ્વેજ ઓફ ફોર્મ છે. કે વાસ્તવિક જે ભાષામાં વેબ પેજ લખવામાં આવે છે છે. અને વેબ બ્રાઉઝર શું ખરેખર તે પછી કંઈક કે આ જેવી લાગે રસીદ પર છે જ નહીં, તે વાંચે નીચે, ઉપર ડાબેથી જમણે, અને કોઇપણ સમયે તે એક આ કોણીય કૌંસ ઓફ જુએ છે વિકલ્પ જેવા કીવર્ડ દ્વારા અનુસરવામાં, તો તેને યોગ્ય રીતે કે માર્કઅપ ભાષા દર્શાવે છે. આ કિસ્સામાં, તેને વર્ષ ડ્રોપ ડાઉન મેનુ દર્શાવશે. પરંતુ ફરીથી, આ એક સંપૂર્ણ માટે જોવા વાસણ છે. આ કારણ કે ફેસબુક વિકાસકર્તાઓ દાખલા તરીકે શૈલી માટે 0 5, પ્રગટ નથી. આ કારણ કે તે કોડ તેઓ લખી મોટાભાગના છે, વાસ્તવમાં, સુંદર હોય તેવા પરચૂરણ, સાથે સાથે ટિપ્પણી કરી હતી, સરસ રીતે ઇન્ડેન્ટેડ છે, અને જેમ, પરંતુ કોર્સ મશીનો, કોમ્પ્યુટરો, બ્રાઉઝર્સ ખરેખર ખરેખર ખૂબ જ આપતા નથી કે શું તમારો કોડ સારી રીતની છે. અને હકીકતમાં, તે સંપૂર્ણપણે નકામું છે માટે ટેબ કી તે તમામ વખત ફટકો અને ટિપ્પણીઓ મૂકવા માટે તમારી તમામ કોડ સમગ્ર અને ખરેખર વર્ણનાત્મક ચલ નામો પસંદ કરો જો કારણ કે બ્રાઉઝરને કાળજી નથી, બધા તમે દિવસ ઓવરને અંતે કરી રહ્યા બાઇટ્સ બરબાદ કરી રહ્યો છે. તેથી તે તારણ સૌથી વેબસાઇટ્સ શું છે તેમ છતાં facebook.com માટે સ્રોત કોડ, અને ઈન્ટરનેટ પર cs50.net આ અન્ય બધી વેબસાઇટ્સ માટે છે ખાસ કરીને તેમજ લેખિત અને સારી ટિપ્પણી અને સરસ રીતે ઇન્ડેન્ટેડ અને જેમ, ખાસ કરીને તે પહેલાં વેબસાઇટ ઇન્ટરનેટ પર મૂકવામાં આવે છે, કોડ minified છે, જેમાં HTML અને CSS - કંઈક બીજું અમે જલ્દી જોશો - આ JavaScript કોડ અમે જલ્દી જોશો સંકુચિત કર્યું છે, જેમાં લાંબા ચલ નામો બની એક્સ અને વાય અને ઝેડ, અને તે સફેદજગ્યાના બધા બનાવે છે બધું, જેથી વાંચનીય જોવા બધા દૂર ફેંકવામાં આવે છે, કારણ કે જો તમે તેને આ રીતે વિશે વિચારો, ફેસબુક નોંધાયો એક અબજ પાનું દિવસ બનાવ્યા - કે ઉન્મત્ત કંઈક - તેથી શું પ્રોગ્રામર ફક્ત ગુદા કરવા જો આ જગ્યા પટ્ટી એક વધારાનો સમય ફટકો માત્ર કોડ કેટલાક રેખા ઇન્ડેન્ટ માટે ઘણું બધું ક્યારેય? ઉદભવે શું છે જો ફેસબુક સાચવે છે કે સફેદજગ્યાના આ બાઈટોની તમામ તેઓ ઈન્ટરનેટ પર લોકો પાછી મોકલી? આ જગ્યા પટ્ટી હિટિંગ એકવાર તમે તમારી ફાઈલ વધારાનો બાઇટ આપે છે. અને જો એક અબજ લોકો પછી તે દિવસે હોમ પેજ ડાઉનલોડ આગળ વધવું કેટલી વધુ માહિતી તમે ઇન્ટરનેટ પર પ્રસારિત છે? કોઈ વાજબી કારણ માટે gigabyte. અને મંજૂર વેબસાઇટ્સ ઘણો માટે આ આવી સ્કેલેબલ મુદ્દો નથી, પરંતુ ફેસબુક માટે, Google માટે, સૌથી વધુ લોકપ્રિય કેટલીક વેબસાઇટો માટે ત્યાં મહાન પ્રોત્સાહન નાણાંકીય છે બનાવવા માટે તમારી કોડ વાસણ જેમ દેખાય છે જેથી તમે શક્ય તરીકે થોડા બાઇટ્સ તરીકે પછી તેને કોમ્પ્રેસ કરવા માટે વધુમાં ઉપયોગ કરી રહ્યાં છો ઝિપ કંઈક મદદથી, અલ્ગોરિધમ gzip ની કહે છે, કે બ્રાઉઝર તમારા માટે આપોઆપ કરે છે. પરંતુ આ ભયાનક છે. અમે અન્ય લોકોની વેબસાઇટ્સ વિશે કશું ક્યારેય જાણવા અને કેવી રીતે વેબ પાનાંઓ ડિઝાઇન માટે પડશે જો અમે આ જેવા તે જોવા મળે છે. તેથી સદભાગ્યે, જેમાં ક્રોમ અને IE અને Firefox જેવા બ્રાઉઝર્સ આ દિવસોમાં ખાસ કરીને આંતરિક વિકાસકર્તા સાધનો સાથે આવે છે. હકીકતમાં, જો હું નીચે અહીં જાઓ એલિમેન્ટ અથવા જો નિરીક્શણ હું જુઓ, વિકાસકર્તા જાઓ, અને વિકાસકર્તા સાધનો સ્પષ્ટપણે જાઓ, મારી સ્ક્રીન તળિયે આ વિન્ડોમાં હવે પૉપ અપ. તે પ્રથમ થોડો લાવનારાઓ છે કારણ કે ત્યાં અજાણ્યા ટેબો ઘણો અહીં, પરંતુ જો હું તત્વો પર તળિયે ડાબી બાજુએ બધી રીતે ક્લિક કરો, ક્રોમ ચોક્કસપણે છે ખૂબ સ્માર્ટ. તે જાણે છે કે કેવી રીતે આ કોડ તમામ અર્થઘટન છે. અને તેથી ક્રોમ શું કરે છે તે માતાનો ફેસબુક HTML ની ​​તમામ ચોખ્ખી કરી દે. તેમ છતાં ત્યાં સફેદજગ્યાના ત્યાં નથી, ત્યાં ખાડો ત્યાં નથી, હવે નોંધ્યું છે કે હું આ વેબ પાનું બધી વધુ ક્રમ શોધખોળ શરૂ કરી શકો છો. તે તારણ છે કે જે દરેક વેબ એક HTML5 કહેવાય ભાષામાં લખાયેલ પાનું આ સાથે શરૂ થવું જોઈએ, આ DOCTYPE ઘોષણા, તેથી વાત કરવા માટે: તે પ્રકાશ અને ગ્રે ત્યાં પ્રકારની છે, પરંતુ તે આ ફાઈલમાં કોડ ખૂબ પ્રથમ વાક્ય છે, અને કે જે ફક્ત બ્રાઉઝર કહે છે, "અરે, અહીં કેટલાક HTML5 આવે અહીં વેબ પાનું આવે છે.". કે બહાર પ્રથમ ઓપન કૌંસ આ વસ્તુ, એક ઓપન કૌંસ એચટીએમએલ ટેગ બને છે, અને પછી જો હું ઊંડા માં ડાઈવ - આ તીર સંપૂર્ણપણે અર્થહીન છે; તેઓ રજૂઆત ખાતર માત્ર છે, તેઓ વાસ્તવમાં ફાઈલ નથી - માતાનો ફેસબુક એચટીએમએલ ટેગ કે અંદર, જે કંઇ પણ એક ખુલ્લું કૌંસ સાથે શરૂ થાય નોટિસ અને પછી શબ્દ ટેગ છે કહેવામાં આવે છે. તેથી HTML ટૅગ અંદર દેખીતી રીતે એક મુખ્ય ટેગ અને શરીર ટેગ છે. માથા ટેગ ની અંદર હવે ફેસબુક માટે એક સંપૂર્ણ છે ભોજનગૃહ કારણ કે તેઓ અને માર્કેટિંગ અને જાહેરાત માટે મેટાડેટા અન્ય વસ્તુઓ હોય છે. પરંતુ જો આપણે સરકાવો, ડાઉન, ડાઉન, ડાઉન, ચાલો જોવા જ્યાં તે છે. અહીં તે છે. આ ઓછામાં ઓછી એક અંશે પરિચિત છે. માતાનો ફેસબુક હોમ પેજ ઓફ શીર્ષક, જો તમે ક્યારેય તમારા શીર્ષક પટ્ટીમાં ટેબ જોવા, ફેસબુક પર આપનું સ્વાગત છે છે - પ્રવેશવાનો, સાઇન અપ કરો અથવા વધુ જાણો. કે તમે શું Chrome ના શીર્ષક પટ્ટી પર જોવા માંગો છો, અને તે કેવી રીતે તે કોડ માં રજૂ કરવામાં આવ્યું છે. જો અમે માથા માં બીજું બધું અવગણો, એક વેબ પાનાંની કુનેહ મોટા ભાગના શરીરમાં છે, અને તે તારણ છે કે ફેસબુક કોડ વધુ જટિલ જોવા રહ્યું છે મોટા ભાગની વસ્તુઓ કરતાં અમે શરૂઆતમાં લખી માત્ર કારણ કે તે વર્ષો કરવામાં આવ્યું બિલ્ટ અપ પડશે, પરંતુ સ્ક્રિપ્ટ ટૅગ્સ સંપૂર્ણ ઘણો, JavaScript કોડ છે, કે વેબસાઇટ ખૂબ ઇન્ટરેક્ટિવ બનાવે છે: સ્થિતિ તત્કાલ જાવાસ્ક્રિપ્ટ જેવી ભાષાઓ મદદથી સુધારાઓ દેખાઈ રહ્યું છે. ત્યાં એક div કહેવાય કંઈક છે, કે જે પાનું એક વિભાગ છે છે. પરંતુ તે પહેલાં અમે તે વિગત મેળવવા, ચાલો બહાર ઝૂમ કરવાનો પ્રયાસ કરો અને Facebook 1.0 એક સરળ આવૃત્તિ જોવા માટે, તેથી વાત કરવા માટે. અહીં વેબ પૃષ્ઠોની હેલ્લો વિશ્વ છે. તે ખૂબ જ ટોચ પર છે કે DOCTYPE ઘોષણા છે જે થોડી બાકીનું બધું અલગ છે. બીજું કંઈ નથી અમે વેબ પાનું લખવા માટે <સાથે શરૂ થઇ રહ્યું છે! તે લીટી સિવાય ત્યાં અને સિવાય HTML માં ટિપ્પણીઓ કહેવાય કંઈક છે. પરંતુ સૌથી ભાગ માટે, વેબ પાનું બધું ઓપન કૌંસ, કીવર્ડ, બંધ કૌંસ છે. આ કિસ્સામાં તમે વેબ શક્ય પૃષ્ઠો સરળ જોઈ શકો છો. આ HTML ટૅગ વડા ટેગ સમાવે છે અને તેને શરીર ટેગ સમાવે છે, નોટિસ પરંતુ ત્યાં શરૂ અને બંધ ટૅગ્સ આ ખ્યાલ છે. આ માટે એચટીએમએલ ટેગ શરૂઆત છે, આ બંધ ટૅગ અથવા ઓવરને ટેગ છે. નોંધ કરો કે તેઓ અર્થમાં ઓપોસિટ જેવું છો કે બંધ ટૅગ અથવા ઓવરને ટેગ આ બોલ પોતે અંદર સ્લેશ. દરમિયાન, ત્યાં એક ખુલ્લું વડા અહીં ટેગ અને બંધ વડા અહીં ટેગ છે. ત્યાં એક ઓપન ટાઇટલ અને બંધ શીર્ષક ટેગ અહીં છે. હકીકત એ છે કે હું એક વાક્ય છે, સ્પષ્ટ રીતે મનસ્વી પર શીર્ષક મૂક્યો છે. તે જેમ તેને સરસ રીતે એક લીટી પર ફિટ થશે દેખાતો હતો, આથી હું બે વખત દાખલ હિટ નથી સંતાપ ન હતી. દરમિયાન, શરીર મેં હમણાં જ અત્યાર સુધીમાં સ્પષ્ટ કરવા ઇન્ડેન્ટ. નોંધ કરો કે એચટીએમએલ એક સુંદર મૂક ભાષા છે. હકીકતમાં, એ દિવસે પાછા પહેલાં ત્યાં WYSIWYG સંપાદકો હતા અને માઇક્રોસોફ્ટ વર્ડ જ્યાં તમે કહી શકો છો, "આ બોલ્ડ બનાવો, આ ત્રાંસા બનાવવા માટે," તમે ખરેખર નિબંધો બહુ આદેશો લખો કરશે 20 વર્ષ પહેલા + + જેમાં તમે કહ્યું, "આ લખાણ ઘાટું બનાવવા શરૂ કરો આ લખાણ ઘાટું કર્યા રોકો.". "આ લખાણ ત્રાંસા બનાવવા શરૂ કરો આ લખાણ ત્રાંસા કર્યા રોકો.". કે એચટીએમએલ અથવા કોઈપણ માર્કઅપ ભાષા શું છે. આ પ્રથમ ટેગ કહે છે, "હે, બ્રાઉઝર. અહીં કેટલાક એચટીએમએલ આવે છે." આગામી ટેગ કહે છે, "હે, બ્રાઉઝર. અહીં માથું, મારી વેબ પાનાંની હેડર આવે છે." "હે, બ્રાઉઝર. અહીં શીર્ષક આવે છે." અને પછી અહીં પર, "અરે, બ્રાઉઝર. તે તે ટાઇટલ માટે છે." તેથી આ રીતે બ્રાઉઝર લાંબા સમય સુધી હેલ્લો કરતાં વધુ અક્ષરો પ્રદર્શિત જાણે છે, વિશ્વ શીર્ષક પટ્ટી પર. દરમિયાન આ કહે છે, "આ તે માથા માટે છે." આ કહે છે, "અહીં શરીર આવે છે અહીં વાસ્તવિક સંસ્થા છે." - શબ્દશઃ શબ્દો હેલ્લો વિશ્વ. અને, આ અહીં કહે છે કે "તે તે શરીર માટે છે કે તે HTML માટે છે.". જેથી બ્રાઉઝર્સ ખૂબ મૂંગું છે. તેઓ ફક્ત આ ઉપરથી નીચે સુધી સામગ્રી, ડાબેથી જમણે વાંચો, અને ચોકકસ શું તેઓ કરવા કહેવામાં આવે નથી. ની ખરેખર થોડું ઉદાહરણ અહીં દો. મને મારી Mac પર કાર્યક્રમો સરળ અહીં ખોલવા માટે, એટલે કે TextEdit. વિન્ડોઝ પર તમે Notepad.exe ઉપયોગ કરી શકે છે. પરંતુ આ બધા તમે વેબ પાનાંઓ બનાવવા શરૂ કરવાની જરૂર છે. હું આગળ જાઓ અને માત્ર કૉપિ કરો અને આ ફાઈલમાં આ કોડ પેસ્ટ કરો જાઉં છું. હું આગળ જાઓ અને તેને મારા ડેસ્કટોપ પર સેવ જાઉં છું, અને હું hello.html તરીકે આ સેવ જાઉં છું, અને હવે ફાઈલ hello.html આવ્યું છે. અહીં મારા ડેસ્કટોપ પર છે. મને હવે બ્રાઉઝરમાં જાઓ અને બ્રાઉઝરમાં ફાઇલ ખેંચો. અને વોઇલા Query, અહીં મારા ખૂબ પ્રથમ વેબ પૃષ્ઠ છે. નોંધ કરો કે તે ટેબનો શીર્ષક હેલ્લો છે, શીર્ષક ટેગ દીઠ તરીકે વિશ્વમાં, સૂચના અને તે હેલ્લો, વિશ્વ મારી વેબ પાનું શરીર છે, અને વુ-હુ, હું ઇન્ટરનેટ પર છું. હું ખરેખર અધિકાર, નથી કારણ કે આ ફાઇલ ઇન્ટરનેટ પર નથી. તે મારા સ્થાનિક ચોક્કસ પાથ પર હાર્ડ ડ્રાઇવ પર બને છે. પરંતુ વિચાર જ છે. બધા આપણે હવે જરૂર વેબ જે તેને અપલોડ કરવા માટે સર્વર છે. પરંતુ પ્રથમ ચાલો ખરેખર થોડી વધુ જટિલતા અને થોડી વધુ stylization દાખલ. આ એક સરળ, જો બોરિંગ, વેબ પૃષ્ઠ છે. તે વર્ષનું બહાર ત્યાં ટૅગ્સ અમે ઉપયોગ કરી શકો છો અન્ય પ્રકારના હોય છે. ઉદાહરણ માટે, અહીં પીળો હું 2 નવી ટૅગ્સ રચના કરી છે. અમે ખૂબ આ આજે સાથે રમવા આવશે, પરંતુ નોટિસ કે કડી ટેગ કોઈક બીજું બધું અલગ દેખાય છે. કડી ટેગ લે શું લક્ષણો કહેવાય છે, અને કોઈ વિશેષતા કંઈક કે જે ટેગ વર્તણૂક સુધારે છે. આ કિસ્સામાં આ નામો, કડી શ્રેષ્ઠ વિકલ્પ નથી, કારણ કે તે પ્રકારની અર્થહીન છે, પરંતુ આ કડી ટેગ કહે છે, અનિવાર્યપણે, આ મારી વેબ પાનાંની અંદર styles.css તરીકે ઓળખાતી ફાઈલ સમાવેશ થાય છે. તમે આ તરીકે સરખું લાગે છે માટે સી એ # ડાઈરેક્ટીવ સમાવેશ થાય છે. Styles.css એક અલગ ભાષા ઉલ્લેખ છે સંપૂર્ણપણે કે અમે આજે સાથે રમશે, પરંતુ તે કલાત્મકતા માટે છે: ફોન્ટ માપ, રંગ, પેડિંગ, ખાડો, માર્જિન, અને સૌંદર્ય શાસ્ત્ર વિગતવાર તે પ્રકારના હોય. દરમિયાન, સ્ક્રિપ્ટ ટેગ વિધેયાત્મક રીતે સરખા છે, તેના બદલે તેમાં CSS, કે જે ભાષા કરતાં, પરંતુ તે અન્ય ભાષા, જાવાસ્ક્રિપ્ટ સમાવેશ થાય છે. તેથી અન્ય શબ્દોમાં, આ 2 ટૅગ્સ હું આખરે મારા પોતાના વેબ પાનું લખવા કરવાનો પ્રયત્ન કરશે પણ કોડ ખેંચવાનો કે હું અથવા કોઈએ લખ્યું છે તેથી અમે અન્ય લોકોની ખભા પર ઊભા કરી શકે છે, અમે સારા ડિઝાઈન પ્રેક્ટિસ કરી શકે છે, સામાન્ય આઉટ કોડ ફેક્ટરિંગના. જો હું 10 અલગ વેબ પાનાંઓ મળી છે, એનો અર્થ એ કે મારા સૌંદર્ય શાસ્ત્ર કેટલાક કારણભૂત બહાર # એક અલગ ફાઈલમાં સમાવેશ થાય છે, જેમ જ હોય ​​છે. તેથી અમે ત્યાં રહ્યાં છો. દો પરંતુ વાસ્તવમાં પ્રથમ વધુ આ ફાઇલ સાથે રસપ્રદ કંઈક. ફરીથી, આ માત્ર TextEdit છે. હું તકનીકી ઇન્ટરનેટ પર હજુ સુધી નથી, પરંતુ અમે ત્યાં મળશે. હું હેલ્લો, વિશ્વ થોડો બોલ્ડર કરતાં તે છે ગમશે. તેથી હેલ્લો, ચાલો આપખુદ બોલ્ડ માટે કહો. ફરીથી, આ વાર્તા જ છે: હેલો, અલ્પવિરામથી, આ બોલ્ડ બનાવવા શરૂ કરવા માટે, પછી વિશ્વ ઘાટા અક્ષરે મુદ્રિત નહીં, અને આ અર્થ છે બોલ્ડ આ છાપવા અટકાવો. મને આગળ વધો અને મારા ફાઈલ સંગ્રહો, Chrome પર પાછા જાઓ, હું હમણાં જ કે જેથી અમે તેને વધુ સારી રીતે જોઈ શકે છે ઝૂમ પડશે, અને ફરીથી લોડ કરો, અને તમે જોશો કે વિશ્વ બોલ્ડ હવે છે. વેબ હાયપરલિંક્સ વિશે બધા છે, તેથી આપણે આગળ વધીશું અને આમ કરવા માટે: મારું મનપસંદ વેબસાઇટ છે, ચાલો કહે, youtube.com. સાચવો, ફરીથી લોડ કરો. ઠીક છે. ત્યાં તે વેબસાઇટનાં કુરૂપતા ઉપરાંત હવે બે સમસ્યાઓ છે. 1, હું ખૂબ ખાતરી છે કે હું અહીં લખો હિટ છું. અને હું હતા. હું માત્ર લિમિટેડ ફટકો, હું પણ ઇન્ડેન્ટેડ, પ્રેક્ટિસ આપણે શું શૈલી અંગે ઉપદેશ કર્યો છે, પરંતુ મારા અધિકાર વિશ્વમાં આગામી છે. તેથી આ શા માટે છે? બ્રાઉઝર્સ માત્ર તમે શું તેમને શું કહેવું. હું બ્રાઉઝરને જણાવ્યું હતું કે, છે "બ્રેક અહીં રેખાઓ શામેલ કરો. ફકરો અહીં તૂટી જાય છે." બ્રાઉઝર તેથી, જો તે હું 30 વખત રીટર્ન ફટકો વાંધો નથી, તે હજુ પણ મારા અધિકાર વિશ્વમાં આગામી મૂકી રહ્યું છે. હું ખરેખર અહીં હોય તો શું કહેવું છે કંઈક જેવા
, એક લીટી વિરામ દાખલ કરો. અને ખરેખર, એક લીટી વિરામ એક વિચિત્ર વસ્તુ પ્રકારની છે કારણ કે તમે ખરેખર બીજી લાઇન ખસેડવા શરૂ કરી શકતા, તો પછી કંઈક, અને પછી એક નવી લાઇન ખસેડવા અટકાવો. તે અણુ કામગીરી પ્રકારની છે. તમે ક્યાં તો તેને પડે છે કે તમને પસંદ નથી. તમે દાખલ ફટકો અથવા તમને પસંદ નથી. તેથી br અલગ ટેગ કરવામાં થોડો હોય છે, અને તેથી હું બન્ને ખુલ્લા ઓફ સૉર્ટ અને તેને બંધ કરવાની જરૂર છે બધા એક જ સમયે. તે માટે વાક્યરચના આ છે. પારિભાષિક રીતે, તમે HTML ની ​​કેટલીક આવૃત્તિઓમાં આ કંઈક કરી શકે, પરંતુ આ માત્ર મૂર્ખ છે, કારણ કે ત્યાં કોઈ ને શરૂ કરવા અને કંઈક રોકવા કારણ છે જો તમે એની જગ્યાએ એક જ સમયે તે બધા કરી શકો છો. સમજો કે HTML5 સખત આ સ્લેશ જરૂર નથી, જેથી તમે પાઠ્યપુસ્તકો અને ઓનલાઇન સ્ત્રોતો છે કે તે ન હોય તો જોવા મળશે, પરંતુ સારા પગલા ચાલો સમપ્રમાણતા કે અમે આમ અત્યાર સુધીમાં જોયેલા પ્રેક્ટિસ કરે છે. આનો અર્થ એ થાય કે ટેગ બંને ખોલી અને બંધ છે. તેથી હવે દો મને મારી ફાઈલ સંગ્રહો, અહીં પાછા જાઓ. ઠીક છે, જેથી તે સારી રીતે વેબ મને ખબર છે, અપવાદરૂપે જુઓ શરૂ છે પ્રકારની ક્લિક કરી શકાય તેવા છે, હજુ સુધી અને અહીં યુટ્યુબ કંઈપણ તરફ દોરી નથી લાગતું નથી. કે કારણ કે તેમ છતાં તે એક લિંક જેવી લાગે છે, બ્રાઉઝર સે દીઠ કે ખબર નથી, તેથી હું બ્રાઉઝર કહેવું છે કે આ એક કડી છે. આ રસ્તો એ ઉદ્ભવે ટૅગ વાપરો છે: <હાયપર સંદર્ભ છે, કે જે કડી કહેતા જૂની શાળા રસ્તો છે માટે એક href, = "Http://www.youtube.com"> દો અને મને નવી લાઇન આ જ ખસી તેને થોડો વધુ વાંચનીય છે, અને હું ફોન્ટ કદ ઘટાડવું પડશે. હું હજુ સુધી પૂર્ણ? નંબર ત્યાં આ બંને જૂથના જ હશે. આ ટૅગ છે, એન્કર ટેગ, ખરેખર કોઈ વિશેષતા લે, જે તેના વર્તન સુધારે છે, અને તે લક્ષણની કિંમત દેખીતી રીતે તો YouTube URL છે. પરંતુ બંને જૂથના નોટિસ છે કે જે હમણાં જ કારણ કે કે URL તમે જઈ રહ્યાં છો છે, એનો અર્થ એ નથી કે જે શબ્દ કે તમે સ્થાપી અને કરી રહ્યાં છો એક લિંક બનાવવા પ્રયત્ન છે. તેના બદલે, આ કંઈક હોઈ શકે છે. તેથી હું આ શબ્દ બંધ એન્કર ટેગ ઉપયોગ કરીને હાયપરલિંક બનાવવા રોકવા કહેવું છે. હું આ કરી રહ્યો છું નોટિસ. 1, આ માત્ર દરેકના સમય કચરો હોઈ શકે છે અને તે જરૂરી નથી. પર ટેગ બંધ કરો, તમે માત્ર ટેગના નામ ફરીથી ઉલ્લેખ કરો. તમે લક્ષણો કોઇ પણ નથી ઉલ્લેખ નથી. તેથી આપણે સેવ કે, પાછા જાઓ. ઠીક છે, વોઇલા Query, હવે તે વાદળી અને હાઈપરલિંક વાળી હોય છે. જો હું તેને ક્લિક કરો, હું ખરેખર YouTube પર કામ કરે છે. તેથી ભલે મારી વેબ પાનું ઇન્ટરનેટ પર નથી, તો તે HTML ઓછામાં ઓછા છે, અને જો આપણે દો ઇન્ટરનેટ મળવા, અમે ખરેખર youtube.com પર અહીં સમાપ્ત થશે. અને હું પાછા જાઓ અને અહીં મારી વેબ પાનું શકે છે. પરંતુ આ નોટિસ. જો તમે ક્યારેય સ્પામ અથવા કોઈ ફિશિંગ હુમલો મેળવેલ કરી લીધી છે, હવે તમે માત્ર પાંચ મિનિટ પછી ક્ષમતા પણ આવું જ હોય ​​છે. અમે અહીં જાઓ અને કરી શકે છે www.badguy.com કંઈક અથવા ગમે તે ઉપરછલ્લા વેબસાઇટ છે, અને પછી તમે કહી શકો તમારા PAYPAL એકાઉન્ટ ચકાસો. [અટ્ટહાસ્ય] અને હવે આ badguy.com છે, કે જે હું પર ક્લિક કરો નથી માંગવાનો પર જાઓ રહ્યું છે કારણ કે હું કોઈ વિચાર જ્યાં દોરી જાય છે કે છે. [અટ્ટહાસ્ય] પરંતુ અમે હવે ખરેખર અપ ત્યાં અંત કરવાની ક્ષમતા હોય છે. તેથી અમે ખરેખર માત્ર રહ્યાં છો સપાટી ખંજવાળી શરૂ. અમે સે દીઠ નથી પ્રોગ્રામિંગ કરી રહ્યાં છો; અમે માર્કઅપ ભાષા લખી રહ્યાં. પરંતુ જલદી અમે HTML માં અમારી શબ્દભંડોળ ધરપકડ, અમે PHP, એક વાસ્તવિક પ્રોગ્રામીંગ ભાષા દાખલ કરશો કે અમને HTML જનરેટ કરવા માટે આપોઆપ પરવાનગી આપવા માટે, સીએસએસ આપોઆપ પેદા થશે, તેથી અમે બુધવારે શરૂ કરવા માટે અમલ કરી શકે છે, કહે છે કે, અમારી પોતાની શોધ એન્જિન અને વધુ. પરંતુ દિવસના બે કે વધુ. અમે તો પછી તમે જોશો. [CS50.TV]