Касе, ки то ҳол лексияҳои Ҳарвардро дар бораи асосҳои барномасозӣ тамошо накардааст, ба ин ҷо равед: https://javarush.com/quests/QUEST_HARVARD_CS50 =)
Муқаддима. Сохтори курсҳои CS50
Рафикон! Дар муқаддима, мо ба шумо дар бораи сохтори CS50 хотиррасон мекунем (ё ба ҳар касе, ки ба шумо мегӯям). Курс 12 ҳафта давом мекунад. Дар ин чо хар хафта ду лекция, инчунин хар гуна семинару фахмон-дахо гузаронда мешаванд. Мо хамин гуна маколахоро баробари тайёр шудани лекцияхо чоп мекунем. Дар он тавсифи мухтасари лексияҳо, қайдҳо дар бораи «кӯтоҳҳо» ва маълумоти иловагӣ, инчунин тарҷумаи супоришҳои амалӣ оварда мешаванд. Лекцияхои хафтаи нули масъалахои зеринро дар бар гирифтанд:- Системаи рақамҳои дуӣ.
- ASCII
- Алгоритмҳо ва тафаккури алгоритмӣ
- Мураттибон
- Забони харошидан
- Ифодаҳои булӣ
- Шароит
- Сиклҳо
- Тағйирёбандаҳо
- Функсияҳо
- Массивҳо
- Ҷараёнҳо
- Ҳодисаҳо
- Фаҳмед, ки чӣ гуна иттилоотро ба таври рақамӣ муаррифӣ кардан мумкин аст.
- Сохторҳо ва консепсияҳои асосии нармафзорро омӯзед.
- Бо истифода аз Scratch аниматсия, бозӣ ё фаъолияти интерактивии худро эҷод кунед.
- Ба дӯстони худ таассурот диҳед =).
CS50 Ҳафтаи 0 (Лекция 1-2): қайдҳо
Алгоритмҳо
Умедворем, ки шумо аллакай лексияҳоро тамошо кардаед ва фаҳмидед, ки алгоритм ҳалли масъалаҳоро (масъалаҳои гуногун, риёзӣ ё «чӣ тавр ба истгоҳи N расидан») ба қадамҳо тақсим мекунад. Гузашта аз ин, ҳар як қадам бояд дар як муддати маҳдуд анҷом дода шавад ва бояд шумораи муайяни қадамҳо бошад. Инчунин, қадами оянда аз пештара вобаста аст. Шумо метавонед дар бораи алгоритмҳо бештар хонед, масалан, дар ин ҷо . Агар шумо забони англисиро донед, инҷо як аниматсияи аҷиби TED аз ҷониби Дэвид Малан аст: https://youtu.be/6hfOvs8pY1k Ҳарчанд дар маҷмӯъ маълумот дар видео такрор мекунад, ки дар лексия =).Системаи рақамҳои дуӣ
Мо 10 ангушт дорем ва система даҳӣ аст. Яъне мо метавонем ҳар ададро, новобаста аз калон, бо истифода аз рақамҳои 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 муаррифӣ кунем. Вобаста аз он ки адад дар куҷост, он метавонад маънои чизҳои гуногун: агар ин рақам охирин бошад, пас он дар ҷои воҳидҳо ҷойгир аст, рақами пеш аз охирин дар ҷои даҳҳо, ҳатто дар тарафи чап дар ҷои садҳо ҷойгир аст ва ғайра. Аслан, ҳама гуна ададро метавон ҳамчун маҷмӯи рақамҳо навишт, ки ҳар яки онҳо ба даҳ адад зарб карда мешаванд. Дар мавриди воҳидҳо - сифр. Масалан, 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Рақаме, ки ба он рақамҳо зарб карда мешаванд, асоси системаи шумора номида мешавад. Барои системаи даҳӣ, асос мантиқӣ даҳ аст. Компютер ангушт надорад, аммо ду њолат мављуд аст: шартан «љараён равон аст» ва «љараён љорї нест», сифр ва як. Мутаносибан, њамаи ададњо (ва умуман информатсия) дар хотираи компютер танњо аз ду раќам – 0 ва 1 иборатанд. Мавќеи онњо, мисли системаи ададї, раќамро нишон медињад. Танҳо акнун шумораро ба ҷамъи рақамҳо тақсим кардан мумкин аст, ки на ба дараҷаи даҳ, балки ба дараҷаи ду зарб карда мешаванд. 0 дар дуӣ = 0 1 дар дуӣ = 1 2 дар дуӣ = 10 7 10 =111 2 Аз дуӣ ба даҳӣ гузаштанро ёд гиред. Эҳтимол шумо аллакай фаҳмидед, ки ин чӣ тавр анҷом дода мешавад - мо танҳо рақами рақамро аз рости рост сар карда, онро ба асос ба қувваи мувофиқи рақами он зарб мекунем ва ҳама чизро бо ҳар як рақам илова мекунем. Мисол: Аналоги даҳии адади дуӣ 101101-ро ёбем 2 Аз росттаринаш = 1*2 0 Сифри навбатӣ = 0*2 1 Сеюм аз тарафи рост = 1*2 2 Чорум = 1*2 3 .. .ва ғайра 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Тасаввур кунед, ки ҳашт лампочка дар як саф ҷойгир шудаанд. Ҳар яке аз онҳо гузаргоҳи худро дорад. Ҳар як лампаи барқ як разряд аст. Шумо чӣ тасаввур карда метавонед, лексияи аввалинро ба ёд оред (дар он ҷо чунин дастгоҳ мавҷуд аст) ё ин ҷо виҷет барои шумост: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play бо он, машқ "эҳсос" он системаи дуӣ. Табдил додан аз даҳӣ ба дуӣ. Дар ин ҷо низ ҳама чиз хеле содда аст, агар шумо моҳиятро дарк кунед. Дар ин ҷо мо рақами 57 10 дорем . Барои ба системаи бинарӣ табдил додани он, шумо бояд муайян кунед, ки кадом қувваи максималии ду аз ин адад зиёд нест. 2 6 = 64. Ин бешубҳа аз ҳад зиёд аст. Аммо 2 5 = 32. Ҳоло мо рақами муҳимтаринро муайян кардем. 32 10= 100000 2 . Ҳоло мо рақами навбатиро меҷӯем. 57-32 = 25. Ҳоло барои 25 мо қудрати дуро меҷӯем, ки аз 25 зиёд набошад. 2 4 = 16. Ин маънои онро дорад, ки рақами навбатии мо низ ба 1 баробар аст. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, ин камтар аз 9 аст. Ин маънои онро дорад, ки рақами навбатӣ низ як хоҳад буд. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, яъне танҳо як қудрат боқӣ мондааст, 2 0 . Хамин тавр 57 10 = 111001 2 . Агар ногаҳон чизе норавшан боқӣ монад, шумо метавонед бештар дар Викикитоб хонед ва агар шумо бо забони англисӣ қавӣ бошед, ин ҷо як иловаи хурд ба лексия аст.ASCII
Компютер танњо сифрњо ва якњоро мефањмад ва хотираи онро њамчун сатри хеле дарози лампањои лампањо бо коммутаторњо нишон додан мумкин аст, чи тавре ки дар боло дидед. Мо аллакай фаҳмидем, ки чӣ гуна рақамҳоро дар компютер нишон додан мумкин аст. Дар бораи маълумоти боқимонда чӣ гуфтан мумкин аст? Мактуб, сурат? Фарз мекунем, ки дар алифбои англисӣ 26 ҳарф мавҷуд аст. Яъне, аз ҷиҳати назариявӣ, мо метавонем ҳарфҳоро бо рақамҳои аз 0 то 25, танҳо дар системаи дуӣ муаррифӣ кунем. Саволи зерин ба миён меояд: мо чи тавр фахмем, ки мо харфи хурд дорем ё калон? Дар бораи аломатҳои пунктуатсия чӣ гуфтан мумкин аст? Аломатҳои ноаён ба монанди фосила? Хулоса, ба мо системаи рамзгузорй лозим аст, cap! Дар солҳои 1960-ум бисёр схемаҳои гуногуне буданд, ки аломатҳоро рамзгузорӣ мекарданд. Набудани якхела мушкorеро нишон дод ва дар соли 1963 Институти Стандартҳои Амрико, ANSI схемаи рамзгузории ASCII (Кодекси стандартии мубодилаи иттилоот)-ро таҳия ва ҷорӣ кард. Ҳар як аломати ASCII аз ҳафт бит ё ҳафт бит иборат аст, ки ҳар яки онҳо метавонад арзиши 0 ё 1-ро бигирад. 7 бит метавонад рақамҳоро аз 0 то 127 дар дуӣ нигоҳ дорад, яъне мо барои рамзгузории аломатҳо 128 адад дорем. Чунин ба назар мерасад, ки ин барои рамзгузории нутқи хаттии англисӣ кофӣ аст? Ҳисоб мекунем: аз - 26 варианти AZ - 26 боз 0-9 - 10 ,;:~& ва дигар аломатҳои пунктуатсия - 32 Ва як фосилаи дигар. Ҳамагӣ - 95 аломат. 33 варианти холии боқимонда барои аломатҳои ба истилоҳ назоратӣ истифода мешаванд, ба монанди навори сатр ё баргардонидани вагон: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Фарқ кардани байни аломатҳои 0-9 ва арзишҳои ададӣ 0 -9. Аломатҳои 0-9 бо арзишҳои ASCII 48-57 ифода карда мешаванд. Ҷолиб он аст, ки чаҳор бит аз ҳама рости ин арзишҳои ASCII намояндагии бинарии арзишҳои ададӣ 0-9 мебошанд. Ин роҳи табдил додани арзишҳои ASCII ва арзишҳои воқеии ададии онҳоро то андозае содда мекунад. Биёед барномасозиро оғоз кунем?Харошидан
Пас, Scratch. Дар лексия ба шумо дар бораи ин забони барномасозии визуалӣ ва фармонҳои асосии он гуфта шуд. Барои худ Scratch-ро санҷед, истинодро пайгирӣ кунед ва "Ҳамроҳ шудан" -ро клик кунед. Пас аз сабти ном, шумо метавонед онлайн барномасозӣ оғоз кунед. Бале, дар омади гап, имрӯз Scratch қисман русӣ шудааст. Бо вуҷуди ин, кӯмак ҳоло ҳам ба забони англисӣ аст. Агар хоҳед, шумо метавонед бозӣ кунед ва инчунин ба рамзи лоиҳаҳои донишҷӯён, ки дар лексия нишон дода шудаанд, нигаред. Ин аст Пикачу канноди сайди . Ё лоиҳае, ки партовҳоро ба зарфҳои гуногун ҷудо мекунад: https://scratch.mit.edu/projects/71161586/ Дэвид ва ширкат аз шумо хоҳиш мекунанд, ки хавотир нашавед, агар шумо фикр кунед, ки шумо чунин лоиҳаҳои мураккабро иҷро карда наметавонед: ин сатҳ аллакай баъзе маҳоратро талаб мекунад. .Машқ кунед
-
Барои беҳтар фаҳмидани равандҳое, ки дар Scratch рух медиҳанд, шумо метавонед рамзи сарчашмаи якчанд лоиҳаро аз ин ҷо зеркашӣ кунед . Дар гирду атроф бозӣ кунед ва бубинед. Омӯзиши рамзи ягон каси дигар хеле муфид аст. Ин яке аз роҳҳои беҳтарини фаҳмидани он аст, ки дар дохor он барномаҳое, ки шумо ҳанӯз ба онҳо нарасидаед, чӣ ҳаст. Пас аз он ки шумо ба фаҳмидани он, ки ин барномаҳо чӣ гуна кор мекунанд, шумо метавонед бехатар ҳаракат кунед.
-
Акнун вақти он расидааст, ки худатон коре кунед. Мушкилот аз он иборат аст, ки фароғат кардан ҳангоми татбиқи лоиҳаи хурд аз сифр. Ин метавонад аниматсия, бозӣ, амали интерактивӣ бошад.
- Барнома бояд ҳадди аққал ду спрайт (аломатҳо, тасвирҳо) дошта бошад ва яке аз онҳо бешубҳа гурба набошад =).
- Ҳадди ақал се скрипт (амал) бояд бошад.
- Ҳадди ақал як шарт, як давр ва як тағирёбанда бояд иҷро карда шавад.
- Дар барнома бояд ҳадди аққал як садо дохил карда шавад.
GO TO FULL VERSION