Вікікнігі bewikibooks https://be.wikibooks.org/wiki/%D0%93%D0%B0%D0%BB%D0%BE%D1%9E%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%BD%D0%BA%D0%B0 MediaWiki 1.47.0-wmf.6 first-letter Мультымедыя Адмысловае Размовы Удзельнік Размовы з удзельнікам Вікікнігі Размовы пра Вікікнігі Файл Размовы пра файл MediaWiki Размовы пра MediaWiki Шаблон Размовы пра шаблон Даведка Размовы пра даведку Катэгорыя Размовы пра катэгорыю TimedText TimedText talk Модуль Размовы пра модуль Event Event talk Рэцэпт:Кісель з клубніц 0 2914 8072 7910 2026-06-11T07:02:21Z Jarash 1066 +час прыгатавання 8072 wikitext text/x-wiki {{кулінарная кніга}} {{Рэцэпт |Выява=[[Файл:Kisiel.jpg|frameless]] |Катэгорыя=Напоі |Порцый=4 |Складанасць=2 |Час=15 хв. }} '''Кісель з клубніц''' — ягадны напой. == Інгрэдыенты == * 3/4 [[w:шклянка|шклянкі]] цукру, * 2 сталовыя лыжкі крухмалу, * паўтары шклянкі вады, * 1 шклянка клубніц. == Прыгатаванне == # Клубніцы прамыць халоднай кіпячонай вадой і растаўчы. # У каструлю наліць вады, насыпаць туды цукру і заварыць бульбяной мукой. # Пюрэ з клубніц палажыць у гарачы кісель, звараны з вады, цукру і крухмалу, і добра размяшаць. == Крыніцы == * [https://www.iamcook.ru/showrecipe/12157 Кисель из клубники — рецепт с фото пошагово. Как приготовить клубничный кисель?] {{DEFAULTSORT:Кісель з клубніц}} [[Катэгорыя:напоі]] kd52old9n0bf8vxctktvfgf4zwwhbgn Шаблон:Рэцэпт 10 2926 8070 7858 2026-06-11T06:40:56Z Jarash 1066 перавод на [[шаблон:Infobox]] 8070 wikitext text/x-wiki <includeonly>{{Infobox |name = |bodystyle = background-color: #f6f6f6; color:#000000 min-width: 300px; font-size:small; padding: 5px |title = |titlestyle = |above = {{{Назва|{{{назва|{{PAGENAME}}}}}}}} {{#if:{{{ацэнка|}}}|<br/>Параметр ''ацэнка'' для гэтага шаблона не ўжываецца; замест гэтага выкарыстоўвайце параметр ''складанасць''|}} |abovestyle = background-color: #96b9fa; color:inherit; font-size:medium; overflow-wrap: break-word; width:300px; |imagestyle = text-align: center; |captionstyle = |image = {{{Выява|{{{выява| }}}}}} {{#if:{{{Выява|{{{выява| }}}}}}| {{#if:{{{Noincludecat|{{{noincludecat|}}}}}}||[[Катэгорыя:Рэцэпты з ілюстрацыямі|{{PAGENAME}}]]}} }} |caption = |image2 = |caption2 = |headerstyle = |labelstyle = text-align: left; |datastyle = |header1 = |label1 = Катэгорыя |data1 = {{ #if: {{{Катэгорыя|}}}|[[:Катэгорыя:{{{Катэгорыя|{{{1}}}}}}|{{{Катэгорыя|{{{1}}}}}}]]}} |header2 = |label2 = Кухня |data2 = {{{Кухня|{{{кухня|}}}}}} |header3 = |label3 = Паходжанне рэцэпта |data3 = {{{Паходжанне|{{{паходжанне|}}}}}} |header4 = |label4 = Выхад |data4 = {{{Выхад|{{{выхад|}}}}}} |header5 = |label5 = Порцый |data5 = {{{Порцый|{{{порцый|}}}}}} |header6 = |label6 = Энергетычная каштоўнасць |data6 = {{{Энергетычная каштоўнасць|{{{энергетычная каштоўнасць|}}}}}} |header7 = |label7 = Час |data7 = {{{Час|{{{час|}}}}}} |header8 = |label8 = Складанасць |data8 = {{#if:{{{Складанасць|{{{складанасць|}}}}}}|<span class="metadata">[[File:{{{Складанасць|{{{складанасць|}}}}}}o5dots.svg|{{#switch:{{{Складанасць|{{{складанасць|}}}}}}|1=Вельмі просты|2=Просты|3=Сярэдняя|4=Складаная|5=Вельмі складаны}}]]</span>{{#if:{{{Noincludecat|{{{noincludecat|}}}}}}||{{#if:{{{Складанасць|{{{складанасць|}}}}}}|[[Катэгорыя:{{#switch:{{{Складанасць|{{{складанасць|}}}}}}|1=Вельмі простыя|2=Простыя|3=Сярэднія|4=Складаныя|5=Вельмі складаныя}} рэцэпты|{{PAGENAME}}]]}}}}}} |label9 = Вікіпедыя |data9 = {{#if:{{{Вікіпедыя|}}}|[[Файл:Wikipedia-logo.svg|17px|link=w:{{{Вікіпедыя|Галоўная старонка}}}|Артыкул у Вікіпедыі]]<br>[[w:{{{Вікіпедыя|Галоўная старонка}}}|Артыкул у Вікіпедыі]]}} |header10 = |label10 = Вікісховішча |data10 = {{#if:{{{Вікісховішча|}}}|[[Файл:Commons-logo.svg|15px|link={{fullurl:commons:{{{Вікісховішча}}}|uselang=be-tarask}}|Выявы на Вікісховішчы]]<br>[{{fullurl:commons:{{{Вікісховішча}}}|uselang=be-tarask}} Выявы<br>на Вікісховішчы]}} |header11 = |label11 = Заўвага |data11 = {{{Заўвага|{{{заўвага|}}}}}} |belowstyle = |below = }}{{ #if: {{{Порцый|{{{порцый|}}}}}}||{{{Noincludecat|{{{noincludecat|[[Катэгорыя:Рэцэпты без порцый|{{PAGENAME}}]]}}}}}} }}{{ #if: {{{Час|{{{час|}}}}}}||{{{Noincludecat|{{{noincludecat|[[Катэгорыя:Рэцэпты без часу прыгатавання|{{PAGENAME}}]]}}}}}} }}</includeonly><noinclude>{{doc}}</noinclude> gewxkok20yz4uvj0qd6w09a4zrw3pup Гродна 0 3281 8071 7587 2026-06-11T06:58:38Z Jarash 1066 дапаўненне 8071 wikitext text/x-wiki Аўтар Τάρας στον Παρνασσό Гэта вікі-кніга пра Гродна і месцы ў Гродне, якія варта ведаць, і якую гісторыю маюць гэтыя месцы. Кніга прызначана для тых, хто хоча ведаць пра Гродна і асноўныя гістарычныя месцы горада. ==Пра Гродна== [[Файл:Flag of Hrodna.svg|150px|міні|справа|Сцяг Гродна]] Горад Гродна знаходзіцца ў Беларусі, праз горад працякае рака Нёман. Гродна размяшчаецца каля межаў Беларусі з Польшчай і Літвой. Праз Гродна праходзяць чыгункі на Вільню, Масты, [[Беласток]]. Аўтамабільнымі дарогамі Гродна злучана з Вільняй, Лідай ды Ваўкавыскам. У Гродна працуе рачны порт. Аэрапорт. ==Крыніцы== *Беларуская энцыклапедыя. «Беларуская Энцыклапедыя імя Петруся Броўкі», 1996. *[http://grodno.gov.by/ Сайт Гродзенскага гарадскога выканаўчага камітэта.] *[[w:Гродна|Гродна]], https://be.wikipedia.org/w/index.php?title=%D0%93%D1%80%D0%BE%D0%B4%D0%BD%D0%B0&oldid=5149806 (апошні прагляд чэрвень 11, 2026). {{Wikipedia}} {{Stub-meta| category = }} [[Катэгорыя:Беларускія Вікі-Кнігі]] 6cl0ildqy9z1gbys2f2dzmhztetuyl9 Мноства Мандэльброта 0 3372 8074 7931 2026-06-11T09:35:50Z Aokoroko 4010 8074 wikitext text/x-wiki ==== Кансольны рэндэрэр Мандэльброта з 5000-біт і метадам абурэнняў (на мове праграмавання [[C++]]) ==== <syntaxhighlight lang="c++"> /* * Original project: * https://github.com/Divetoxx/Mandelbrot */ #include <iostream> #include <fstream> #include <vector> #include <cmath> #include <cstdint> #include <string> #include <atomic> #include <omp.h> #include <cstdio> #include <iomanip> #include <gmp.h> #include <mpfr.h> using namespace std; const double PI = 3.14159265358979323846; const mpfr_prec_t MPFR_BITS = 5000; #pragma pack(push, 1) struct BMPHeader { uint16_t type{0x4D42}; uint32_t size{0}; uint16_t reserved1{0}; uint16_t reserved2{0}; uint32_t offBits{54}; uint32_t structSize{40}; int32_t width{0}; int32_t height{0}; uint16_t planes{1}; uint16_t bitCount{24}; uint32_t compression{0}; uint32_t sizeImage{0}; int32_t xpelsPerMeter{2834}; int32_t ypelsPerMeter{2834}; uint32_t clrUsed{0}; uint32_t clrImportant{0}; }; #pragma pack(pop) struct ComplexDouble { double re; double im; }; void save_bmp(const string& filename, const vector<uint8_t>& data, int w, int h) { int rowSize = (w * 3 + 3) & ~3; BMPHeader header; header.width = w; header.height = h; header.sizeImage = rowSize * h; header.size = header.sizeImage + 54; ofstream f(filename, ios::binary); f.write(reinterpret_cast<char*>(&header), 54); f.write(reinterpret_cast<const char*>(data.data()), data.size()); f.close(); } int main() { string absc_str, ordi_str, size_str; absc_str = "-1.7491976289657893741942376816272921165326158557416159"; ordi_str = "-0.00000042530777152440422725855012159249401150956515248"; size_str = "0.00000000000000000000000000000000000000000000000000431"; const int targetW = 10000; const int targetH = 10000; const int scale = 8; const int rawW = targetW * scale; const int rawH = targetH * scale; cout << "Step 1: Calculating Raw Map (" << rawW << "x" << rawH << ") using Perturbation..." << endl; vector<uint8_t> iterMap((size_t)rawW * rawH); mpfr_t rx, ry, zr, zi, zr2, zi2, tmp, sz, st; mpfr_inits2(MPFR_BITS, rx, ry, zr, zi, zr2, zi2, tmp, sz, st, NULL); mpfr_set_str(rx, absc_str.c_str(), 10, MPFR_RNDN); mpfr_set_str(ry, ordi_str.c_str(), 10, MPFR_RNDN); mpfr_set_str(sz, size_str.c_str(), 10, MPFR_RNDN); mpfr_div_ui(st, sz, rawW, MPFR_RNDN); double step_d = mpfr_get_d(st, MPFR_RNDN); double ref_rec_d = mpfr_get_d(rx, MPFR_RNDN); double ref_imc_d = mpfr_get_d(ry, MPFR_RNDN); vector<ComplexDouble> ref_orbit_double(50005); mpfr_set_ui(zr, 0, MPFR_RNDN); mpfr_set_ui(zi, 0, MPFR_RNDN); mpfr_set_ui(zr2, 0, MPFR_RNDN); mpfr_set_ui(zi2, 0, MPFR_RNDN); uint32_t ref_i = 0; bool escaped = false; while (ref_i < 50000) { ref_orbit_double[ref_i].re = mpfr_get_d(zr, MPFR_RNDN); ref_orbit_double[ref_i].im = mpfr_get_d(zi, MPFR_RNDN); mpfr_mul(tmp, zr, zi, MPFR_RNDN); mpfr_mul_ui(zi, tmp, 2, MPFR_RNDN); mpfr_add(zi, zi, ry, MPFR_RNDN); mpfr_sub(zr, zr2, zi2, MPFR_RNDN); mpfr_add(zr, zr, rx, MPFR_RNDN); mpfr_mul(zr2, zr, zr, MPFR_RNDN); mpfr_mul(zi2, zi, zi, MPFR_RNDN); if (escaped) { ref_i++; break; } mpfr_add(tmp, zr2, zi2, MPFR_RNDN); if (mpfr_cmp_d(tmp, 4.0) >= 0) { escaped = true; } ref_i++; } ref_orbit_double[ref_i].re = mpfr_get_d(zr, MPFR_RNDN); ref_orbit_double[ref_i].im = mpfr_get_d(zi, MPFR_RNDN); uint32_t max_valid_ref_iter = ref_i; mpfr_clears(rx, ry, zr, zi, zr2, zi2, tmp, sz, st, NULL); atomic<int> linesDone{0}; #pragma omp parallel for schedule(dynamic) for (size_t b = 0; b < (size_t)rawH; ++b) { for (size_t a = 0; a < (size_t)rawW; ++a) { double delta_rec = (double)((long long)a - (rawW / 2)) * step_d; double delta_imc = (double)((long long)b - (rawH / 2)) * step_d; uint32_t index = 0; double delta_re = 0.0; double delta_im = 0.0; double z_re = 0.0; double z_im = 0.0; uint32_t i = 0; const ComplexDouble* ref_ptr = ref_orbit_double.data(); while (i < max_valid_ref_iter) { if ((z_re * z_re + z_im * z_im) >= 40000.0) { break; } if ((z_re * z_re + z_im * z_im) < (delta_re * delta_re + delta_im * delta_im)) { index = 0; delta_re = z_re; delta_im = z_im; } for (int step = 0; step < 2; ++step) { double Ur = ref_ptr[index].re; double Ui = ref_ptr[index].im; double next_delta_im = 2.0 * Ur * delta_im + 2.0 * Ui * delta_re + 2.0 * delta_re * delta_im + delta_imc; delta_re = 2.0 * Ur * delta_re - 2.0 * Ui * delta_im + delta_re * delta_re - delta_im * delta_im + delta_rec; delta_im = next_delta_im; index++; } z_re = ref_ptr[index].re + delta_re; z_im = ref_ptr[index].im + delta_im; i += 2; } int final_t = 50000 - i; if (final_t == 0) { iterMap[b * (size_t)rawW + a] = 255; } else { iterMap[b * (size_t)rawW + a] = (uint8_t)(final_t % 254); } } if (++linesDone % 100 == 0) cout << "Progress: " << linesDone << "/" << rawH << "\r" << flush; } uint8_t pal[256][3]; for (int a = 0; a < 255; ++a) { pal[a][0] = (uint8_t)round(127.0 + 127.0 * cos(2.0 * PI * a / 255.0)); // Blue pal[a][1] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a / 255.0)); // Green pal[a][2] = (uint8_t)round(127.0 + 127.0 * sin(2.0 * PI * a / 255.0)); // Red } pal[255][0] = 255; pal[255][1] = 255; pal[255][2] = 255; cout << "\nStep 2: Rendering frames..." << endl; int rowSize = (targetW * 3 + 3) & ~3; for (int frame = 0; frame < 255; ++frame) { vector<uint8_t> frameData(rowSize * targetH); #pragma omp parallel for schedule(static) for (int y = 0; y < targetH; ++y) { for (int x = 0; x < targetW; ++x) { uint32_t rSum = 0, gSum = 0, bSum = 0; for (int j = 0; j < scale; ++j) { size_t mapRowIdx = (size_t)(y * scale + j) * rawW; for (int i = 0; i < scale; ++i) { uint8_t t = iterMap[mapRowIdx + (x * scale + i)]; int colorIdx; if (t == 255) { colorIdx = 255; } else { colorIdx = (t - frame + 255) % 255; } bSum += pal[colorIdx][0]; gSum += pal[colorIdx][1]; rSum += pal[colorIdx][2]; } } int outIdx = y * rowSize + x * 3; frameData[outIdx + 0] = (uint8_t)(bSum >> 6); frameData[outIdx + 1] = (uint8_t)(gSum >> 6); frameData[outIdx + 2] = (uint8_t)(rSum >> 6); } } string filename = "Mandelbrot" + to_string(1000 + frame).substr(1) + ".bmp"; save_bmp(filename, frameData, targetW, targetH); cout << "Frame " << frame << "/254 saved. \r" << flush; } return 0; } </syntaxhighlight> ==== На мове Assembler ==== Ну, што. Трэба пісаць код. Праграмаванне. А я пішу на мове Assembler! Выбар менавіта гэтага асяроддзя распрацоўкі зусім незвычайны, але так ужо склалася. Як напісана: "Гэтае дзеянне выключна простае - трэба перацягнуць мышкай значок файла Mandelbrot.asm на значок FASM.EXE так, каб адбылося дзеянне "Адкрыць з дапамогай". У выніку ў тэчцы неадкладна з'явіцца прыкладанне Mandelbrot.exe". https://flatassembler.net/download.php АПІСАННЕ ПРАГРАМЫ Дадатак Mandelbrot малюе ва ўвесь экран участак мноства Мандэльброта і паказвае анімацыю. Кірунак руху анімацыі можна змяняць стрэлачнымі клавішамі клавіятуры кампутара. Дзве розныя палітры размалёўкі можна выбіраць клавішамі F6 і F7. Пяць розных загадзя абраных цікавых месцаў мноства Мандэльброта можна выбіраць клавішамі F1, F2, F3, F4, F5. Клік левай кнопкай мышы набліжае (павялічвае) выява ў 2 разы, клік правай кнопкай мышы - аддаляе (памяншае) малюнак у 2 разы. Інфармацыю аб упадабаным малюнку можна захаваць на будучыню ў файл клавішай End і потым загрузіць з файла клавішай Ins. Каб выйсці, трэба націснуць клавішу Esc. <syntaxhighlight lang="nasm"> format PE GUI 4.0 entry start macro invoke proc,[arg] { common if ~ arg eq reverse pushd arg common end if call [proc] } macro proc [args] { common match name params, args> \{ define@proc name,<params \} } prologue@proc equ prologuedef macro prologuedef procname,flag,parmbytes,localbytes,reglist { if parmbytes | localbytes push ebp mov ebp,esp if localbytes sub esp,localbytes end if end if irps reg, reglist \{ push reg \} } epilogue@proc equ epiloguedef macro epiloguedef procname,flag,parmbytes,localbytes,reglist { irps reg, reglist \{ reverse pop reg \} if parmbytes | localbytes leave end if if flag and 10000b retn else retn parmbytes end if } macro define@proc name,statement { local params,flag,regs,parmbytes,localbytes,current if used name name: match =stdcall args, statement \{ params equ args flag = 11b \} match =stdcall, statement \{ params equ flag = 11b \} match =c args, statement \{ params equ args flag = 10001b \} match =c, statement \{ params equ flag = 10001b \} match =params, params \{ params equ statement flag = 0 \} virtual at ebp+8 match =uses reglist=,args, params \{ regs equ reglist params equ args \} match =regs =uses reglist, regs params \{ regs equ reglist params equ \} match =regs, regs \{ regs equ \} match =,args, params \{ defargs@proc args \} match =args@proc args, args@proc params \{ defargs@proc args \} parmbytes = $ - (ebp+8) end virtual name # % = parmbytes/4 all@vars equ current = 0 match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \} macro locals \{ virtual at ebp-localbytes+current macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\} struc db [val] \\{ \common deflocal@proc .,db,val \\} struc du [val] \\{ \common deflocal@proc .,du,val \\} struc dw [val] \\{ \common deflocal@proc .,dw,val \\} struc dp [val] \\{ \common deflocal@proc .,dp,val \\} struc dd [val] \\{ \common deflocal@proc .,dd,val \\} struc dt [val] \\{ \common deflocal@proc .,dt,val \\} struc dq [val] \\{ \common deflocal@proc .,dq,val \\} struc rb cnt \\{ deflocal@proc .,rb cnt, \\} struc rw cnt \\{ deflocal@proc .,rw cnt, \\} struc rp cnt \\{ deflocal@proc .,rp cnt, \\} struc rd cnt \\{ deflocal@proc .,rd cnt, \\} struc rt cnt \\{ deflocal@proc .,rt cnt, \\} struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \} macro endl \{ purge label restruc db,du,dw,dp,dd,dt,dq restruc rb,rw,rp,rd,rt,rq current = $-(ebp-localbytes) end virtual \} macro ret operand \{ match any, operand \\{ retn operand \\} match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> \\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \} macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2 end if \} } macro defargs@proc [arg] { common if ~ arg eq forward local ..arg,current@arg match argname:type, arg \{ current@arg equ argname label ..arg type argname equ ..arg if dqword eq type dd ?,?,?,? else if tbyte eq type dd ?,?,? else if qword eq type | pword eq type dd ?,? else dd ? end if \} match =current@arg,current@arg \{ current@arg equ arg arg equ ..arg ..arg dd ? \} common args@proc equ current@arg forward restore current@arg common end if } macro endp { purge ret,locals,endl finish@proc purge finish@proc restore regs@proc match all,args@proc \{ restore all \} restore args@proc match all,all@vars \{ restore all \} } macro library [name,string] { forward local _label if defined name#.redundant if ~ name#.redundant dd RVA name#.lookup,0,0,RVA _label,RVA name#.address end if end if name#.referred = 1 common dd 0,0,0,0,0 forward if defined name#.redundant if ~ name#.redundant _label db string,0 rb RVA $ and 1 end if end if } macro import name,[label,string] { common if defined name#.referred name#.lookup: forward if used label if string eqtype '' local _label dd RVA _label else dd 80000000h + string end if end if common if $ > name#.lookup name#.redundant = 0 dd 0 else name#.redundant = 1 end if name#.address: forward if used label if string eqtype '' label dd RVA _label else label dd 80000000h + string end if end if common if ~ name#.redundant dd 0 end if forward if used label & string eqtype '' _label dw 0 db string,0 rb RVA $ and 1 end if common end if } macro directory [type,label] { common local max,count count = 0 max = 0 forward count = count + 1 if type > max max = type end if common root@resource dd 0,%t,0,count shl 16 repeat max forward if % = type dd type,80000000h+label-root@resource end if common end repeat } macro resource dir,[id,lang,label] { common dir: local min,max,count,current forward min = id max = id common count = 0 forward count = count + 1 if id < min min = id else if id > max max = id end if common dd 0,%t,0,count shl 16 repeat max-min+1 current = $ forward if min+%-1 = id if current = $ dd id,80000000h+label#.directory-root@resource end if end if common end repeat repeat max-min+1 current = $ forward if min+%-1 = id if current = $ label#.directory dd 0,%t,0,10000h,lang,label-root@resource count = 1 else dd lang,label-root@resource count = count + 1 end if end if label#.resid = id common local x,y,z,v1,v2 if count > 1 store word count at current+0Eh x = count shr 1 while x > 0 y = x while y < count z = y while z-x >= 0 load v1 dword from current+10h+z*8 load v2 dword from current+10h+(z-x)*8 if v1<v2 store dword v1 at current+10h+(z-x)*8 store dword v2 at current+10h+z*8 load v1 dword from current+10h+z*8+4 load v2 dword from current+10h+(z-x)*8+4 store dword v1 at current+10h+(z-x)*8+4 store dword v2 at current+10h+z*8+4 else break end if z = z-x end while y = y+1 end while x = x shr 1 end while end if end repeat } section '.code' code readable executable start: mov [snam],0 invoke CreateMutex,0,0,mutexname invoke GetLastError cmp eax,ERROR_ALREADY_EXISTS jne willwork invoke ExitProcess,0 willwork: invoke EnumDisplaySettings,0,-1,dmDeviceName mov eax,[dmPelsWidth] shr eax,2 shl eax,2 mov [wi],eax mov [wwi],eax mov eax,[dmPelsHeight] mov [he],eax mov [whe],eax invoke GetCommandLine mov esi,eax cld zikl: lodsb cmp al,0 je worki cmp al,'/' jne zikl lodsb cmp al,'p' jne nofinti nofin: lodsb cmp al,0 jne nofin mov ebx,1 mov ecx,10 calcul: dec esi dec esi xor eax,eax lodsb cmp al,' ' je calend sub al,30h mul ebx add [ifparent],eax mov eax,ebx mul ecx mov ebx,eax jmp calcul calend: invoke GetWindowRect,[ifparent],spleft mov ebx,[spright] mov edx,[spleft] sub ebx,edx mov [wi],ebx mov [wwi],ebx mov eax,[spbottom] mov ecx,[sptop] sub eax,ecx mov [he],eax mov [whe],eax mul ebx mov [proizv],eax mov [wstyle],WS_CHILD+WS_VISIBLE jmp worki nofinti: cmp al,'c' jne worki mov [cflag],1 mov [wwi],640 mov eax,[dmPelsWidth] sub eax,[wwi] shr eax,1 mov [le],eax mov [whe],302 invoke GetSystemMetrics,SM_CYCAPTION add [whe],eax invoke GetSystemMetrics,SM_CYFIXEDFRAME shl eax,1 add [whe],eax mov eax,[dmPelsHeight] sub eax,[whe] shr eax,1 mov [to],eax mov [wi],452 mov [he],300 mov [wstyle],WS_VISIBLE+WS_SYSMENU worki: cld mov edi,palet mov esi,qalet finit fild [sds] ;127 fild [dtp] ;255 127 fldpi ;pi 255 127 splpal: fild [gbs] ;0 pi 255 127 fadd st0,st0 ;0*2 pi 255 127 fmul st0,st1 ;0*2*pi pi 255 127 fdiv st0,st2 ;0*2*pi/255 pi 255 127 fld st0 ;0*2*pi/255 0*2*pi/255 pi 255 127 fcos ;cos 0*2*pi/255 pi 255 127 fmul st0,st4 ;cos*127 0*2*pi/255 pi 255 127 fadd st0,st4 ;cos*127+127 0*2*pi/255 pi 255 127 fistp [valb] ;0*2*pi/255 pi 255 127 fsin ;sin pi 255 127 fmul st0,st3 ;sin*127 pi 255 127 fadd st0,st3 ;sin*127+127 pi 255 127 fistp [valg] ;pi 255 127 mov ax,[seed1] mov bx,[seed2] mov cx,ax mul [cont] shl cx,3 add ch,cl add dx,cx add dx,bx shl bx,2 add dx,bx add dh,bl shl bx,5 add dh,bl add ax,1 adc dx,0 mov [seed1],ax mov [seed2],dx mov cx,dx mov bx,256 mul bx mov ax,cx mov cx,dx mul bx add ax,cx adc dx,0 mov ax,dx and eax,0FFh shl eax,8 or eax,[valg] shl eax,8 or eax,[valb] stosd ror eax,8 xchg al,ah rol eax,8 mov [esi],eax add esi,4 inc [gbs] cmp edi,palet+1020 jb splpal fstp st0 fstp st0 fstp st0 mov eax,00FFFFFFh stosd mov [esi],eax invoke GetModuleHandle,0 mov [clsHInstance],eax invoke LoadIcon,eax,9758 mov [clsHIcon],eax invoke LoadCursor,0,IDC_CROSS mov [clsHCursor],eax invoke RegisterClass,clsStyle invoke CreateWindowEx,0,splclassname,spltitlename,[wstyle],[le],[to],[wwi],[whe],[ifparent],0,[clsHInstance],0 mov [newhwnd],eax cmp [cflag],1 jne noconfig invoke CreateWindowEx,0,stname,sabout,WS_CHILD+WS_VISIBLE,460,0,172,302,[newhwnd],3961,[clsHInstance],0 mov [hmess],eax invoke CreateWindowEx,0,stname,0,SS_BITMAP+SS_SUNKEN+WS_CHILD+WS_VISIBLE,0,0,454,302,[newhwnd],3962,[clsHInstance],0 mov [newhwnd],eax invoke CreateFontIndirect,lfHeight mov [HNewFont],eax invoke SendMessage,[hmess],WM_SETFONT,[HNewFont],1 noconfig: invoke GetDC,[newhwnd] mov [MyDC],eax invoke CreateDIBSection,[MyDC],bhead,0,tut,0,0 mov [HBitmap],eax invoke CreateCompatibleDC,[MyDC] mov [CoDC],eax invoke SelectObject,[CoDC],[HBitmap] mov [OBitmap],eax invoke CreateEvent,0,0,0,event1name mov [ehndl],eax invoke CreateEvent,0,0,0,event2name mov [chndl],eax invoke CreateEvent,0,0,0,event3name mov [dhndl],eax invoke CreateThread,0,0,Thr1Proc,0,0,Thr1ID mov [t1hndl],eax invoke CreateThread,0,0,Thr2Proc,0,0,Thr2ID mov [t2hndl],eax invoke CreateThread,0,0,Thr3Proc,0,0,Thr3ID mov [t3hndl],eax invoke GetCurrentProcess invoke SetPriorityClass,eax,REALTIME_PRIORITY_CLASS invoke SetThreadPriority,[t1hndl],THREAD_PRIORITY_TIME_CRITICAL call pusk msg_loop: invoke GetMessage,msHWND,0,0,0 or eax,eax jz end_loop invoke DispatchMessage,msHWND jmp msg_loop end_loop: invoke SelectObject,[CoDC],[OBitmap] invoke DeleteObject,[HBitmap] invoke DeleteDC,[CoDC] invoke ReleaseDC,[newhwnd],[MyDC] invoke CloseHandle,[ehndl] invoke CloseHandle,[chndl] invoke CloseHandle,[dhndl] invoke CloseHandle,[t1hndl] invoke CloseHandle,[t2hndl] invoke CloseHandle,[t3hndl] invoke DeleteObject,[HNewFont] invoke ExitProcess,0 proc WndProc, hwnd,wmsg,wparam,lparam push ebx esi edi cmp [wmsg],WM_DESTROY je wmdestroy cmp [wmsg],WM_LBUTTONDOWN je ldown cmp [wmsg],WM_RBUTTONDOWN je rdown cmp [wmsg],WM_KEYDOWN je keypressed invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam] jmp finish ldown: call coords fdivp st1,st0 fstp [size] call pusk jmp my rdown: call coords fmulp st1,st0 fstp [size] call pusk jmp my coords: mov eax,[lparam] mov [tempx],ax shr eax,16 mov edx,[he] sub dx,ax mov [tempy],dx finit fld [step] fild [tempx] fmul st0,st1 fld [labsc] faddp st1,st0 fstp [absc] fild [tempy] fmulp st1,st0 fld [bordi] faddp st1,st0 fstp [ordi] fld [size] fld1 fadd st0,st0 retn pusk: cld finit fild [wi] ;wi fld [size] ;size wi fdivrp st1,st0 ;size/wi fld st0 ;step step fstp [step] ;step fld1 ;1 step fld1 ;1 1 step fadd st0,st1 ;2 1 step fild [wi] ;wi 2 1 step fsub st0,st2 ;wi-1 2 1 step fdiv st0,st1 ;(wi-1)/2 2 1 step fmul st0,st3 ;(wi-1)/2*step 2 1 step fld [absc] ;absc (wi-1)/2*step 2 1 step fsub st0,st1 ;labsc (wi-1)/2*step 2 1 step fstp [labsc] ;(wi-1)/2*step 2 1 step fstp st0 ;2 1 step fild [he] ;he 2 1 step fsub st0,st2 ;he-1 2 1 step fdiv st0,st1 ;(he-1)/2 2 1 step fmul st0,st3 ;(he-1)/2*step 2 1 step fld [ordi] ;ordi (he-1)/2*step 2 1 step fsub st0,st1 ;bordi (he-1)/2*step 2 1 step fstp [bordi] ;(he-1)/2*step 2 1 step finit invoke SetEvent,[chndl] invoke SetEvent,[dhndl] retn keypressed: cmp [wparam],VK_LEFT jne noleft mov [Direction],1 jmp my noleft: cmp [wparam],VK_RIGHT jne noright mov [Direction],2 jmp my noright: cmp [wparam],VK_F1 jne nof1 finit fld [absc1] fstp [absc] fld [ordi1] fstp [ordi] fld [size1] fstp [size] call pusk jmp my nof1: cmp [wparam],VK_F2 jne nof2 finit fld [absc2] fstp [absc] fld [ordi2] fstp [ordi] fld [size2] fstp [size] call pusk jmp my nof2: cmp [wparam],VK_F3 jne nof3 finit fld [absc3] fstp [absc] fld [ordi3] fstp [ordi] fld [size3] fstp [size] call pusk jmp my nof3: cmp [wparam],VK_F4 jne nof4 finit fld [absc4] fstp [absc] fld [ordi4] fstp [ordi] fld [size4] fstp [size] call pusk jmp my nof4: cmp [wparam],VK_F5 jne nof5 finit fld [absc5] fstp [absc] fld [ordi5] fstp [ordi] fld [size5] fstp [size] call pusk jmp my nof5: cmp [wparam],VK_F6 jne nof6 mov [whatpal],palet jmp my nof6: cmp [wparam],VK_F7 jne nof7 mov [whatpal],qalet jmp my nof7: cmp [wparam],VK_F12 jne nof12 mov [iter],1048560 invoke SetEvent,[chndl] invoke SetEvent,[dhndl] jmp my nof12: cmp [wparam],VK_INSERT jne noins invoke GetOpenFileName,ofn cmp eax,0 je my invoke CreateFile,snam,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0 mov [hfile],eax invoke ReadFile,[hfile],absc,10,hows,0 invoke ReadFile,[hfile],ordi,10,hows,0 invoke ReadFile,[hfile],size,10,hows,0 invoke CloseHandle,[hfile] call pusk jmp my noins: cmp [wparam],VK_END jne noend invoke GetSaveFileName,ofn cmp eax,0 je my invoke CreateFile,snam,GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0 mov [hfile],eax invoke WriteFile,[hfile],absc,10,hows,0 invoke WriteFile,[hfile],ordi,10,hows,0 invoke WriteFile,[hfile],size,10,hows,0 invoke CloseHandle,[hfile] jmp my noend: cmp [wparam],VK_ESCAPE jne my wmdestroy: invoke PostQuitMessage,0 my: xor eax,eax finish: pop edi esi ebx ret endp proc Thr1Proc,Paramx align 16 again: cmp [Direction],1 je revers cld mov esi,[whatpal] mov edi,esi lodsd mov ecx,254 repe movsd stosd jmp endchoice revers: std mov esi,[whatpal] add esi,1016 mov edi,esi lodsd mov ecx,254 repe movsd stosd cld endchoice: invoke SetDIBColorTable,[CoDC],0,256,[whatpal] ; invoke WaitForSingleObject,[ehndl],16 invoke DwmFlush invoke BitBlt,[MyDC],0,0,[wi],[he],[CoDC],0,0,SRCCOPY jmp again endp proc Thr2Proc, paramx align 16 agaj: invoke WaitForSingleObject,[chndl],-1 finit mov [y1],0 mov edi,[tut] mov ebx,255 fld [t] ;t fld [step] ;step t vertp: mov [x1],0 fld [bordi] ;ordi step t fild [y1] ;y ordi step t fmul st0,st2 ;y*step ordi step t faddp st1,st0 ;imc step t horip: fld [labsc] ;absc imc step t fild [x1] ;x absc imc step t fmul st0,st3 ;x*step absc imc step t faddp st1,st0 ;rec imc step t fld st1 ;im rec imc step t fld st1 ;re im rec imc step t mov ecx,[iter] align 16 iterat: fld st1 ;im re im rec imc step t fmul st2,st0 ;im re im*im rec imc step t fld st1 ;re im re im*im rec imc step t fmul st2,st0 ;re im re*re im*im rec imc step t fmulp st1,st0 ;im*re re*re im*im rec imc step t fld st1 ;re*re im*re re*re im*im rec imc step t fadd st0,st3 ;re*re+im*im im*re re*re im*im rec imc step t fcomip st7 ;im*re re*re im*im rec imc step t ja nook fadd st0,st0 ;im*re+im*re re*re im*im rec imc step t fadd st0,st4 ;imnew re*re im*im rec imc step t fxch st2 ;im*im re*re imnew rec imc step t fsubp st1,st0 ;re*re-im*im imnew rec imc step t fadd st0,st2 ;renew imnew rec imc step t loop iterat mov dl,255 jmp nexxt nook: fstp st0 mov eax,ecx xor edx,edx div ebx nexxt: mov al,dl stosb fstp st0 fstp st0 fstp st0 inc [x1] mov eax,[wi] cmp [x1],eax jb horip fstp st0 add edi,[wi] inc [y1] inc [y1] mov eax,[he] cmp [y1],eax jb vertp mov [iter],40080 jmp agaj endp proc Thr3Proc, paramx align 16 agaj2: invoke WaitForSingleObject,[dhndl],-1 finit mov [y2],1 mov edi,[tut] add edi,[wi] mov ebx,255 fld [t] ;t fld [step] ;step t vertp2: mov [x2],0 fld [bordi] ;ordi step t fild [y2] ;y ordi step t fmul st0,st2 ;y*step ordi step t faddp st1,st0 ;imc step t horip2: fld [labsc] ;absc imc step t fild [x2] ;x absc imc step t fmul st0,st3 ;x*step absc imc step t faddp st1,st0 ;rec imc step t fld st1 ;im rec imc step t fld st1 ;re im rec imc step t mov ecx,[iter] align 16 iterat2: fld st1 ;im re im rec imc step t fmul st2,st0 ;im re im*im rec imc step t fld st1 ;re im re im*im rec imc step t fmul st2,st0 ;re im re*re im*im rec imc step t fmulp st1,st0 ;im*re re*re im*im rec imc step t fld st1 ;re*re im*re re*re im*im rec imc step t fadd st0,st3 ;re*re+im*im im*re re*re im*im rec imc step t fcomip st7 ;im*re re*re im*im rec imc step t ja nook2 fadd st0,st0 ;im*re+im*re re*re im*im rec imc step t fadd st0,st4 ;imnew re*re im*im rec imc step t fxch st2 ;im*im re*re imnew rec imc step t fsubp st1,st0 ;re*re-im*im imnew rec imc step t fadd st0,st2 ;renew imnew rec imc step t loop iterat2 mov dl,255 jmp nexxt2 nook2: fstp st0 mov eax,ecx xor edx,edx div ebx nexxt2: mov al,dl stosb fstp st0 fstp st0 fstp st0 inc [x2] mov eax,[wi] cmp [x2],eax jb horip2 fstp st0 add edi,[wi] inc [y2] inc [y2] mov eax,[he] cmp [y2],eax jb vertp2 mov [iter],40080 jmp agaj2 endp section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\ user,'USER32.DLL',\ gdi,'GDI32.DLL',\ ddllgg,'COMDLG32.DLL',\ dwmapi,'DWMAPI.DLL' import kernel,\ GetModuleHandle,'GetModuleHandleA',\ GetCommandLine,'GetCommandLineA',\ CreateMutex,'CreateMutexA',\ CreateThread,'CreateThread',\ CreateEvent,'CreateEventA',\ SetEvent,'SetEvent',\ CreateFile,'CreateFileA',\ ReadFile,'ReadFile',\ WriteFile,'WriteFile',\ WaitForSingleObject,'WaitForSingleObject',\ CloseHandle,'CloseHandle',\ GetLastError,'GetLastError',\ GetCurrentProcess,'GetCurrentProcess',\ SetPriorityClass,'SetPriorityClass',\ SetThreadPriority,'SetThreadPriority',\ ExitProcess,'ExitProcess' import user,\ RegisterClass,'RegisterClassA',\ CreateWindowEx,'CreateWindowExA',\ DefWindowProc,'DefWindowProcA',\ GetMessage,'GetMessageA',\ SendMessage,'SendMessageA',\ DispatchMessage,'DispatchMessageA',\ LoadCursor,'LoadCursorA',\ LoadIcon,'LoadIconA',\ GetDC,'GetDC',\ ReleaseDC,'ReleaseDC',\ GetWindowRect,'GetWindowRect',\ EnumDisplaySettings,'EnumDisplaySettingsA',\ GetSystemMetrics,'GetSystemMetrics',\ PostQuitMessage,'PostQuitMessage' import gdi,\ CreateDIBSection,'CreateDIBSection',\ CreateCompatibleDC,'CreateCompatibleDC',\ SelectObject,'SelectObject',\ DeleteObject,'DeleteObject',\ DeleteDC,'DeleteDC',\ CreateFontIndirect,'CreateFontIndirectA',\ SetDIBColorTable,'SetDIBColorTable',\ BitBlt,'BitBlt' import ddllgg,\ GetOpenFileName,'GetOpenFileNameA',\ GetSaveFileName,'GetSaveFileNameA' import dwmapi,\ DwmFlush,'DwmFlush' section '.data' data readable writeable absc dt 0.23215767853857 ordi dt -0.54953856716295 size dt 0.000000000008 t dt 10000000000000.0 iter dd 40080 absc1 dt -0.8274339775534058 ordi1 dt 0.1863544535074837 size1 dt 0.000000000000023 absc2 dt -0.839415805050327289052 ordi2 dt 0.223484686429087973440 size2 dt -0.00000000000014 absc3 dt -0.7849958448296 ordi3 dt -0.14659449428125 size3 dt 0.000000000035 absc4 dt -1.1896303680411870529 ordi4 dt 0.304275733768362228928 size4 dt 0.0000000000000028 absc5 dt -0.737724728811921468701 ordi5 dt 0.289595161073595381255 size5 dt 0.00000000000024 whatpal dd palet clsStyle dd 0 clsLpfnWndProc dd WndProc clsCbClsExtra dd 0 clsCbWndExtra dd 0 clsHInstance dd ? clsHIcon dd ? clsHCursor dd ? clsHbrBackground dd COLOR_BTNFACE+1 clsLpszMenuName dd 0 clsLpszClassName dd splclassname wstyle dd WS_POPUP+WS_VISIBLE ifparent dd 0 mutexname db 'fdjfyyjdsjf',0 event1name db 'iidegfkdgpe',0 event2name db 'pyoupovppve',0 event3name db 'oyiotegfgwe',0 splclassname db 'ekjgddirkul',0 spltitlename db 'Spl Mandelbrot - Settings',0 stname db 'STATIC',0 sabout db 13,10,'Key:',13,10 db 'F1-F5 - Images',13,10 db 'F6,F7 - palettes',13,10 db 'arrows - direction',13,10 db 'Esc - Exit',13,10 db 'Ins - Loading',13,10 db 'End - preservation',13,10,13,10 db 'Mouse buttons:',13,10 db 'left - increase',13,10 db 'right - reduction',13,10,13,10 db 'Author site:',13,10 db 'https://splushka.narod.ru/',0 lfHeight dd -14 lfWidth dd 0 lfEscapement dd 0 lfOrientation dd 0 lfWeight dd FW_NORMAL lfItalic db 0 lfUnderline db 0 lfStrikeOut db 0 lfCharSet db RUSSIAN_CHARSET lfOutPrecision db OUT_TT_PRECIS lfClipPrecision db CLIP_DEFAULT_PRECIS lfQuality db PROOF_QUALITY lfPitchAndFamily db FIXED_PITCH+FF_MODERN lfFaceName db 'Courier New',0 Direction dd 1 seed1 dw 0 seed2 dw 0 cont dw 8405h gbs dd 0 sds dd 127 dtp dd 255 cflag dd 0 le dd 0 to dd 0 ofn dd 76 hWndOwner dd 0 hInstance dd 0 lpstrFilter dd sfilter lpstrCustomFilter dd 0 nMaxCustFilter dd 0 nFilterIndex dd 0 lpstrFile dd snam nMaxFile dd 1024 lpstrFileTitle dd 0 nMaxFileTitle dd 0 lpstrInitialDir dd 0 lpstrTitle dd 0 Flags dd OFN_LONGNAMES+OFN_HIDEREADONLY+OFN_OVERWRITEPROMPT+OFN_FILEMUSTEXIST+OFN_PATHMUSTEXIST nFileOffset dw 0 nFileExtension dw 0 lpstrDefExt dd exte lCustData dd 0 lpfnHook dd 0 lpTemplateName dd 0 sfilter db '*.plu params file \(^o^)/',0,'*.plu',0,0 exte db 'plu' bhead dd 40 wi dd ? he dd ? dw 1 dw 8 dd 0 proizv dd ? dd 2834 dd 2834 dd 0 dd 0 palet rd 256 qalet rd 256 HBitmap rd 1 OBitmap rd 1 MyDC rd 1 CoDC rd 1 Thr1ID rd 1 Thr2ID rd 1 Thr3ID rd 1 msHWND rd 1 msMESSAGE rd 1 msWPARAM rd 1 msLPARAM rd 1 msTIME rd 1 msPT rd 2 newhwnd rd 1 ehndl rd 1 chndl rd 1 dhndl rd 1 t1hndl rd 1 t2hndl rd 1 t3hndl rd 1 spleft rd 1 sptop rd 1 spright rd 1 spbottom rd 1 dmDeviceName rb 32 dmSpecVersion rw 1 dmDriverVersion rw 1 dmSize rw 1 dmDriverExtra rw 1 dmFields rd 1 dmOrientation rw 1 dmPaperSize rw 1 dmPaperLength rw 1 dmPaperWidth rw 1 dmScale rw 1 dmCopies rw 1 dmDefaultSource rw 1 dmPrintQuality rw 1 dmColor rw 1 dmDuplex rw 1 dmYResolution rw 1 dmTTOption rw 1 dmCollate rw 1 dmFormName rb 32 dmLogPixels rw 1 dmBitsPerPel rd 1 dmPelsWidth rd 1 dmPelsHeight rd 1 dmDisplayFlags rd 1 dmDisplayFrequency rd 1 wwi rd 1 whe rd 1 valg rd 1 valb rd 1 x1 rd 1 y1 rd 1 x2 rd 1 y2 rd 1 tut rd 1 step rt 1 labsc rt 1 bordi rt 1 HNewFont rd 1 hmess rd 1 snam rb 1024 hfile rd 1 hows rd 1 tempx rw 1 tempy rw 1 ERROR_ALREADY_EXISTS=183 SRCCOPY=00CC0020h IDI_ASTERISK=32516 IDC_CROSS=32515 WS_POPUP=080000000h WS_VISIBLE=010000000h WM_DESTROY=0002h VK_LEFT=025h VK_RIGHT=027h VK_ESCAPE=01Bh COLOR_BTNFACE=15 WS_CHILD=040000000h SM_CYCAPTION=4 SM_CXFIXEDFRAME=7 SM_CYFIXEDFRAME=8 WS_SYSMENU=000080000h SS_BITMAP=000Eh SS_SUNKEN=1000h WM_SETFONT=0030h REALTIME_PRIORITY_CLASS=100h THREAD_PRIORITY_TIME_CRITICAL=15 WM_LBUTTONDOWN=0201h WM_RBUTTONDOWN=0204h WM_KEYDOWN=0100h VK_F1=070h VK_F2=071h VK_F3=072h VK_F4=073h VK_F5=074h VK_F6=075h VK_F7=076h VK_F12=07Bh VK_INSERT=02Dh OPEN_EXISTING=3 FILE_SHARE_READ=00000001h GENERIC_READ=80000000h VK_END=023h FILE_ATTRIBUTE_NORMAL=080h CREATE_ALWAYS=2 GENERIC_WRITE=40000000h FW_NORMAL=400 RUSSIAN_CHARSET=204 OUT_TT_PRECIS=4 CLIP_DEFAULT_PRECIS=0 PROOF_QUALITY=2 FIXED_PITCH=1 FF_MODERN=30h OFN_LONGNAMES=200000h OFN_HIDEREADONLY=000004h OFN_OVERWRITEPROMPT=000002h OFN_FILEMUSTEXIST=001000h OFN_PATHMUSTEXIST=000800h RT_ICON=3 RT_GROUP_ICON=14 LANG_NEUTRAL=0 </syntaxhighlight> [[Катэгорыя:Падручнікі]] fn64pymhw7y1xezagffps6huo5zvloy Рэцэпт:Капсалён 0 3387 8073 7981 2026-06-11T07:08:29Z Jarash 1066 +Час прыгатавання 8073 wikitext text/x-wiki {{Кулінарная кніга}} {{Рэцэпт |Выява = [[Файл:Plaza Het Station Kapsalon, Deventer (2023) 01 (cropped).jpg|300пкс]] |Порцый = |Час = 45 хв. |Складанасць = 4 |Энергетычная каштоўнасць = |Вікіпедыя = |Вікісховішча = |Катэгорыя = Фаст-фуд }} '''Капсалён''' — страва [[Нідэрляндзкая кухня|нідэрляндзкай кухні]], якая складаецца са смажанай бульбы, шавэрмы, сыру і сьвежай гародніны. Высокакалярыйная ежа хуткага харчаваньня, альтэрнатыўная другім стравам. == Складнікі == * 8—9 бульбінаў * 3 кавалкі курыных грудак * 2—3 лыжкі прыправы для кебабу/гірасу * 150—180 г жоўтага сыру * 1 качан пэкінскай капусты * 1 чырвоная цыбуліна * 1 зялёны агурок * 2—3 памідоры * 200 г натуральнага ёгурту * 3 лыжкі маянэзу * часнык * соль * перац == Прыгатаваньне == Вымыць і высушыць мяса, пакраіць кубікамі. Пасыпаць прыправай для гірасу і паставіць у лядоўню прыкладна на 30 хвілінаў. Тады дастаць і пасмажыць на разагрэтай патэльні зь невялікай колькасьцю алею. Бульбу абабраць і нарэзаць тонкімі палоскамі. Пасмажыць у фрытурніцы на разагрэтым алеі (можна запекчы ў духоўцы). Капусту дробна нашаткаваць. Цыбулю, гуркі, памідоры пакраіць. Перамяшаць у місе ўсю гародніну. Ёгурт злучыць з маянэзам, дадаць адціснуты часнык. Заправіць сольлю і перцам. Выкласьці смажаную бульбу на бляху ці ў алюмінавую форму. Зьверху раўнамерна выкласьці смажанае мяса. Пасыпаць усё таркаваным сырам. Запякаць у нагрэтай да 190 °C духоўцы, пакуль не расплавіцца сыр. Тады засыпаць усё гароднінай і паліць часныковым соўсам. Падаваць гарачым. == Вонкавыя спасылкі == * [https://smakinatalerzu.pl/2018/12/31/kapsalon-holenderski-fast-food/ Капсалён — нідэрляндзкі фаст-фуд] {{ref-pl}} * [https://www.edimdoma.ru/retsepty/117804-kapsalon Капсалон с курицей и грибами — сытный ужин за 45 минут] [[Катэгорыя:Фаст-фуд]] [[Катэгорыя:Нідэрляндзкая кухня]] [[Катэгорыя:Вікі-Кнігі на тарашкевіцы]] 5ifqhrk6f1js4ca2vz5fjvd2ujnnujx Шаблон:Infobox 10 3419 8069 2026-06-11T06:17:12Z Jarash 1066 Новая старонка: «<templatestyles src="Шаблон:Infobox/styles.css />{{#invoke:Infobox|infobox}}<includeonly>{{template other|{{#ifeq:{{PAGENAME}}|Infobox||{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Катэгорыя:Шаблоны|{{remove first word|{{SUBPAGENAME}}}}]]}}}}|}}</includeonly><noinclude> {{doc}} <!-- Катэгорыі дадаюцца на падстаронку /doc, інтэрвікі дадаюцца на Вікізвесткі. --> </noinclude>» 8069 wikitext text/x-wiki <templatestyles src="Шаблон:Infobox/styles.css />{{#invoke:Infobox|infobox}}<includeonly>{{template other|{{#ifeq:{{PAGENAME}}|Infobox||{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Катэгорыя:Шаблоны|{{remove first word|{{SUBPAGENAME}}}}]]}}}}|}}</includeonly><noinclude> {{doc}} <!-- Катэгорыі дадаюцца на падстаронку /doc, інтэрвікі дадаюцца на Вікізвесткі. --> </noinclude> dafmfekl5ip9y12m66l3gw0ewnsua0y