[MUSIC Playing] DAVID J. Malan: Në rregull. Kjo është CS50, dhe kjo është fundi i Javës Four. Dhe një nga temat sot është ajo e mjekësisë ligjore dixhitale, arti i shërohet informacion. Dhe me të vërtetë, edhe pse ju jeni në mes tani e Paqes në tre dhe Breakout, javën e ardhshme, Fokusi do të jetë në pikërisht këtë domain. Pra, një nga punët coolest kam kishte ishte kthyer në shkollën e diplomuar, kur unë isha duke punuar për lokale Middlesex County Prokurorit të Qarkut-së zyra, mjeko-ligjore duke bërë punë. Pra, në thelb, Massachusetts Policia e Shtetit, në disa raste, kur punojnë në raste do sjellë në gjëra të tilla si hard drives dhe disqe floppy dhe kartat e kujtesës dhe të ngjashme. Dhe ata do të dorëzojë ato për mua dhe mentorin tim, dhe qëllimi ynë është për të gjetur prova, nëse ka pasur ndonjë, në këto media. Shikime të Tani, ju mund të keni parë e kësaj bote të mjekësisë ligjore në media, TV dhe filma. Por punë kam pasur, dhe guxoj të them se bota, nuk është fare si ju do të shihni atë. Le të marrin një vështrim në atë ju ndoshta keni parë. [VIDEO Playback] OK. Tani, le të marrë një sy të mirë në ju. [MUSIC Playing] -Hold Atë. Run që i mbështesin. -Wait Një minutë. Shko e drejtë. -Ka. Freeze se. PLOTE-ekran. OK. Freeze se. -Tighten Deri në këtë, do ju? -Vector Në më se djalë nga rrota e pasme. -Zoom Në të drejtë këtu në këtë vend. -Me Pajisje të drejtë, image mund të zgjerohet dhe të mprehur. -Çfarë Është se? -Ajo Është një program zgjerimin. -Mund Ju të qartë se deri ndonjë? -Unë Nuk e di. Le të rritur atë. -Enhance Seksioni A6. Unë zgjeruara detaje, and-- -Unë Mendoj se ka mjaft për të rritur. Lirimin e tij për ekranin tim. -Unë Zgjeruara reflektimin në sytë e saj. -Le Është drejtuar këtë përmes zgjerimin Video. -Edgar, Mund të rrisë këtë? -Hang Më. -Ve Qenë duke punuar në këtë reflektim. Pasqyrim i dikujt -Ka së. -Reflection. -Nuk Është një pasqyrim i fytyrës së njeriut. Reflektim, Partia! -Nuk Është një reflektim. -Zoom Në në pasqyrë. Ju mund të shihni një reflektim. -A Mund të përmirësuar imazhin nga këtu? -A Mund të rritur atë? -A Mund të rritur atë? -A Mund ne të rritur këtë? -A Mund të rritur atë? -Hold Në një të dytë. Unë do të rritur. -Zoom Në në derë. -Times 10. -Zoom. -Move Në. -Më Shumë. -Wait, Të ndaluar. -Ndaloni. -Pause Atë. Na -Rotate 75 gradë rreth vertikale, ju lutem. -Ndaloni. Kthehu mbrapa në pjesën përpara derës përsëri. -Got Një enhancer imazhit që mund të bitmap? -Maybe Ne mund të përdorim Pradeep Singh Metoda për të parë në dritare. -The software është shtet i artit. , Partia eigenvalue është off. -Me Të djathtë kombinim i algorithms-- Ndriçim marrë -Ai-së algoritme në nivelin e ardhshëm, dhe unë mund t'i përdorë ato për të rritur këtë fotografi. -Lock Në dhe të zgjeruar z-aks. -Enhance. Përmirëso. -Enhance. -Freeze Dhe të rritur. [VIDEO END rishikim] DAVID J. Malan: Pra, ata janë të të gjitha fjalët, por ato nuk ishin të përdorur në fjali të saktë. Dhe me të vërtetë në të ardhmen, në çdo kohë, ju lutem, dëgjoni dikë që thotë fjalën, "Rritur", nënqeshje vetëm pak. Sepse kur ju përpiqeni për të rritur, për shembull, kjo është ajo që ndodh. Kështu që këtu është një foto mrekullueshëm. Ky është vet Daven CS50-së. Dhe mendoj se ne të kërkuar për të të përqëndrohet në në vezullim në sy të tij, ose reflektim i djalë i keq që ishte në mënyrë të qartë kapur nga kamera e sigurisë. Kjo është ajo që ndodh kur ju zoom në një imazh që ka vetëm një numër i caktuar i bit që lidhen me të. Kjo është ajo që ju do të merrni. Dhe me të vërtetë, në sy Daven-së është vetëm katër, ndoshta gjashtë pixels që kompozoj saktësisht se çfarë ishte dritëz atje. Pra Problem Set Katër në fund të fundit do të duhet ju eksploruar këtë botë, veçanërisht nga natyra e diçka ne e quajmë fotografi i / o, ku i / o është vetëm një mënyrë e sofistikuar për të duke thënë input dhe output. Pra deri më tani, të gjitha bashkëveprimet ne kemi pasur me një kompjuter kanë qenë kryesisht me tuaj tastierë dhe ekran, por jo aq shumë me hard disk, ose kursim të dosjeve përtej atyre ju veten shkruani. Programet tuaja deri tani kanë nuk janë krijuar, dhe të kursimit, dhe përditësimin dosjet e tyre. E pra, çfarë është një skedar? E pra, diçka si një JPEG. Ky është një imazh që ju mund duhet ose ngarkoni në Facebook, ose të shihni kudo në internet. Në të vërtetë, që foto ne vetëm pa e Daven ishte një JPEG. Dhe çfarë është interesante për fotografi si JPEGs është se ato mund të identifikohen, zakonisht, nga modele të caktuara të bit. Me fjalë të tjera, çfarë është ajo që dallon një JPEG nga një GIF nga një PING nga një fjalë dokument nga një file Excel? E pra, kjo është vetëm e ndryshme modelet e copa. Dhe këto modele të ndryshme janë zakonisht në fillim të këtyre dosjeve. Kështu që kur kompjuteri juaj hap një Word doc, ose kur një kompjuter hap një JPEG, kjo duket në mënyrë tipike në disa bit e para në dosjen. Dhe në qoftë se ajo njeh një model, ai thotë, oh, ky është një imazh. Më lejoni të shfaq atë në përdoruesi si një grafik. Ose, oh, kjo duket si një Word doc. Më lejoni të tregojë se për të përdoruesit, si një ese. Kështu për shembull, JPEGs, rezulton, janë mjaft të sofistikuar nën kapuç. Por tre bytes e para në më të çdo JPEG fillojë me këto tre numra. Pra byte zero, një, dhe dy janë, në më çdo JPEG, 255, atëherë numri 216, atëherë numri 255. Dhe ajo që ju do të jetë në gjendje për të fillojnë të bëjnë javën e ardhshme është në të vërtetë poking nën individualitet e dosjeve si JPEGs dhe si fotografi bitmap, dhe duke parë ajo që ka qenë gjithmonë atje për aq kohë si ju keni qenë duke përdorur një kompjuter. Por ajo që është atje nuk është në mënyrë tipike shkruar si numra dhjetorë si kjo. Shkencëtarët kompjuter nuk e bëjnë kanë tendencë për të folur në decimal. Ata vërtetë nuk flasin në binar. Në mënyrë tipike, kur ne duam për të shprehur numrat, ne fakt përdorni hexadecimal, të cilat ju mund të kujtojnë nga, të themi, Problem Set Një, e cila sfidoi ju të mendoni për një sistem të ndryshëm. Ne, natyrisht, janë të njohur me decimal, zero përmes nëntë. Biseduam për binar. Dhe ne nuk të vërtetë kanë për të përdorur që shumë këtu më jashtë, sepse kompjuterat do të përdorë këtë. Por programuesit do shumë shpesh, por jo gjithmonë, përdorni hexadecimal, e cila vetëm do të thotë ju keni 16 shkronja në alfabetin tënd, në krahasim me dy ose 10. Deri sa ju të mbështeteni për të më e lartë se nëntë në heksadecimal? Qe shkojnë 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, vetëm nga konventa. Por ajo që është kryesore është që çdo nga këto është një simbol i vetëm. Nuk ka 10. Nuk ka 11, në vetvete, sepse çdo i shifrave tuaja, ashtu si në decimal dhe ashtu si në binar, duhet vetëm të të jetë një karakter të vetëm, nga konventa. Pra, që atëherë është alfabeti ne kemi në dispozicionin tonë për heksadecimal. Pra, çfarë e bën një JPEG duket si në qoftë se ju ishin të shkruar nga këta të tre e parë nuk bytes si decimal, por, për shembull, si heksadecimal? Dhe pse është magji edhe të gjithë që të dobishme? E pra, një vështrim i shpejtë në një shembull. Pra, nëse unë shkruaj nga copa që përfaqësojnë këto numbers-- decimal kjo mund të jetë një ndryshkur pak tani nga disa javë prapa, por një e majtë dhe një e drejtë janë goxha e lehtë. 255 ishte numri më i madh që ne mund të përfaqësojë me tetë bit. Ishte të gjitha ato. Pra, i vetmi që është e butë interesante është një e mesme. Dhe në qoftë se ju lloj i bëni jashtë matematikë, ju do të nxjerr një përfundim se, me të vërtetë, se modeli i një dhe zero përfaqëson 216. Pra, le të vetëm të parashikojë për tani që këto janë të sakta. Por pse është kjo interesante? E pra, një bajt, natyrisht, është tetë bit. Dhe kjo rezulton se në qoftë se ju mendoni se e një bajt si dy copa të katër copa, si kjo. Më lejoni vetëm të shtoni një hapësirë. Pra, para, pas. Unë e kam vetëm të shtuar një hapësirë ​​të bardhë për hir Vizualizimi-së këtu. Si mund të kemi tani të përfaqësojë në, të themi, heksadecimal secilin kuadrat i bit, secili grup i katër bit? Kështu për shembull, në të majtë tani, ne kemi 1111 në binar. Çfarë është se numri në decimal, në qoftë se ju bëni jashtë matematikë? Ju keni vendin Ones, vend twos, vendi katër këmbët, dhe vendi tetë. Audienca: 15. DAVID J. Malan: Kjo është 15. Pra, nëse ne bëjmë tetë plus katër plus dy plus një, ne kemi marrë 15. Kështu që unë mund të shkruani 15 më poshtë 1111 dhe por pika e tërë këtu është heksadecimal, nuk dhjetore. Pra, në vend të shkruar 15, 1-5, Unë jam duke shkuar për të shkruar që në magji, e cila në qoftë se ju mendoni përsëri, në qoftë se ju keni zero nëpërmjet f, çfarë është 15 do të jetë? Audienca: f. DAVID J. Malan: Pra, ajo rezulton se është f. Dhe ju mund të punojnë jashtë se duke thënë, dhe, nëse A është 10, pastaj në rregull, f është 15. Pra, me të vërtetë, ne mund të rishkruaj ky grup i njëjtë i numrave si f f. Atëherë, nëse ne bëjmë një grimë e matematikës, ne do të nxjerr një përfundim se kjo është d. Tetë është shumë e lehtë, sepse ne kanë një një në vendin e tetë. Dhe pastaj, ne kemi një çift shumë f f-së. Pra, ajo që njerëzit kanë tendencë për të bërë nga konventa kur ata përdorin heksadecimal është se ata vetëm shkruaj këtë pak më shkurtimisht, shpëtoj nga shumica e asaj hapësirë ​​të bardhë. Dhe vetëm të jenë super të qartë të lexuesit se kjo është heksadecimal, Konventa e thjeshtë në mes të njerëzit po ju shkruani zero x, e cila nuk ka kuptimin tjetër se një identifikues vizuale të, këtu vjen një numër magji. Dhe pastaj, të vendosni dy shifra, f f në këtë rast, pastaj d a, pastaj f f. Pra histori të gjatë të shkurtër, heksadecimal vetëm ka tendencë të jetë e dobishme për shkak se secili prej saj shifrat e kodit, zero nëpërmjet f, të përkryer linjat me një model të katër copa. Pra, nëse ju keni dy numra heksadecimal, zero përmes F, përsëri dhe përsëri, që ju jep të përkryer tetë bit ose një bajt. Pra, kjo është arsyeja pse ajo tenton të të jetë konvencionale të dobishme. Nuk ka intelektuale përmbajtje me të vërtetë përtej kësaj, përveç shërbimeve të saj aktual. Tani JPEGs nuk janë vetëm paraqesë formate për graphics. Ju mund të kujtojnë se ka fotografi si kjo në botë, të paktën nga disa vjet mbrapa. Pra, kjo ishte në të vërtetë instaluar në Windows XP në miliona PC në mbarë botën. Dhe kjo ishte një fotografi bitmap, BMP. Dhe një fotografi bitmap, si ju do të shihni tjetër javë, thjesht do të thotë një model i dots, pixels si ata janë quajtur, një hartë në copa, me të vërtetë. Pra, çfarë është interesante, edhe pse, në lidhje me këtë format file, BMP, është që nën kapuç, atë ka më shumë se vetëm tre bytes që kompozoj header e saj, në mënyrë të flasin, e disa kafshon e para. Ajo në fakt duket pak komplikuar në shikim të parë. Dhe ju do të shihni këtë në setin P. Dhe për të gjetur diçka nga të veçantë të kësaj tani nuk është aq e rëndësishme, sa vetëm fakti që në fillim të çdo bitmap fotografi, një format grafik, ka një bandë e tërë e numrave. Tani Microsoft, autor i këtij formati, ka tendencë për të thirrur ata Gjërat nuk Ints dhe chars dhe gjithandej, por fjalët dhe d fjalët dhe longs dhe bytes. Pra, ata janë vetëm lloje të ndryshme të të dhënave. Ata janë emra të ndryshëm për të njëjtën gjë. Por ju do të shihni se në P Set Katër. Por kjo është vetëm për të thënë se në qoftë se një njeri dy klikimeve disa fotografi bmp në e tij ose hard drive e saj, dhe një dritare hapet up duke treguar atë që e imazhit, se ka ndodhur për shkak të operimit sistemi me sa duket vënë re jo vetëm file extension bmp në emrin e file, por edhe fakti se ka disa konventë në modelin e copa në fillim e këtë dosje bitmap. Por le të tani të përqëndrohet në tillë një fotografi e komplikuar, por në vend të kësaj në diçka si kjo. Supozoni këtu në Gedit, unë vetëm kanë fillimet i një programi që është shumë e thjeshtë. Unë kam marrë disa përfshin deri të lartë. Tani unë kam marrë # Include "structs.h", por Unë do të kthehem në se në një moment. Por kjo është e dobishme për tani. Pra, ky është një program që do të zbatojë si bazën e të dhënave të gjendjes civile. Pra, një bazë të dhënash e studentëve, dhe çdo studenti në botë ka një emër dhe një shtëpi dhe ndoshta disa sende të tjera, por ne do të mbani atë të thjeshtë. Çdo nxënës ka një emër dhe një shtëpi. Pra, nëse kam kërkuar të shkruaj një Programi qëllimi i të cilit në jetë ishte vetëm për të iterate nga zero për deri në tre, në qoftë se ka tre studentë në Universitetin e Harvardit. Dhe unë vetëm dua të të marrë, duke përdorur GetString, emrin e studentit dhe shtëpi, dhe pastaj vetëm të shtypura ato jashtë. Kjo është lloj si Javës Një, Java Dy gjëra tani, ku unë vetëm dua një për loop ose diçka të tillë. Dhe unë dua të thërrasë GetString disa herë, dhe pastaj të shtypura f disa herë. Pra, si mund të bëj këtë, edhe pse, kur të dyja një emër dhe një shtëpi janë të përfshirë për çdo student? Pra instinkti im i parë mund të jetë për të bërë diçka si kjo. Unë mund të them së pari, dhe, më jepni, thonë, një rrjet të strings quajtur emra. Dhe unë nuk dua një hardcode tre këtu. Çfarë dua të vënë atje? Pra STUDENTËT, sepse kjo është vetëm një konstante deklaruar në krye, vetëm kështu që unë nuk duhet të hardcode tre në vende të shumta. Në këtë mënyrë, unë mund të ndryshojë atë një vend, dhe kjo ndikon në ndryshimin kudo. Dhe pastaj, unë mund të bëj string shtëpi STUDENTËT. Dhe tani, unë mund të bëjë diçka si për (int i = 0; i