Informatika fanidan "tarmoqlanish" dars xulosasi. Informatika fanidan dars konspekti “tarmoqlanish” Algoritmik tuzilmasi “tarmoqlanish”. Filial buyrug'i. To'liq va to'liq bo'lmagan shoxlanishga misollar

Munitsipal byudjet ta'lim muassasasi

Krasnopolyansk 32-son o'rta maktab

Rostov viloyati, Peschanokopskiy tumani

9-sinfda informatika fanidan dars konspekti
Tarmoqlanish

tayyorlangan

IT-o'qituvchisi

Mixaylova Natalya Valerievna

Dars maqsadlari:

    tarmoqlangan algoritm tushunchalarini kiritish (to'liq, to'liq bo'lmagan shakl)

    tarmoqlanish algoritmlarini blok-sxema shaklida tasvirlashni o'rganish.

Vazifalar:

    Tarbiyaviy : tarmoqlanish algoritmlarini, toʻliq va toʻliq boʻlmagan tarmoqlarni, masalalarni yechishdagi harakatlar ketma-ketligini oʻrganishga koʻmaklashish, oqim sxemalarini tuzish malakasini shakllantirish.

    Tarbiyaviy: mantiqiy fikrlash va e'tiborni rivojlantirishga yordam berish; mavzuga kognitiv qiziqishni rivojlantirish.

    Tarbiyaviy: yangi materialni o'rganishni allaqachon ma'lum faktlar bilan bog'lash qobiliyatini rivojlantirish; mustaqillik va guruhlarda, juftlikda va mustaqil ishlash qobiliyatini tarbiyalash.

Dars turi: yangi bilimlarni olish darsi.

Dars turi: birlashtirilgan.

Uskunalar: kompyuterlar, multimedia proyektori, multimedia taqdimoti, talabalar uchun qo'llab-quvvatlovchi dars eslatmalari, mustaqil ish uchun topshiriqlar, aks ettirish uchun kulgichlar (qora va qizil)

Darslar davomida

1. Tashkiliy moment

Salom bolalar!

Ertalab quyosh uyg'ondi,
Cho'zildi va tabassum qildi
Va sayrga chiqdi
Tun zulmatini haydab chiqaring...

2.Asosiy bilimlarni yangilash

Frontal so'rov:

    Algoritmni aniqlang;

    Algoritmning xossalarini sanab bering;

    Algoritmlarni yozish usullarini nomlang;

    Qanday algoritmik tuzilmalarni bilasiz?

    Qaysi algoritm chiziqli deb ataladi?

    Chiziqli algoritmning blok diagrammasi qanday chiziladi?

3. Yangi bilimlarni shakllantirish

O'qituvchining kirish so'zi: BILANMuayyan harakatlarni bajarish orqali biz qandaydir algoritmni bajaramiz.
Chiziqli algoritmlarga oid kundalik hayotdan misollar keltiring. (Talabalar chiziqli algoritmlarga misollar keltiradilar)
Afsuski, haqiqiy hayotda chiziqli algoritmlar juda kam uchraydi. Har doim ham bor
sharoitlar , bu algoritmni o'zgartiradi.
Masalan : Ertalab maktabga tayyorgarlik ko'ramiz, biz albatta derazadan qaraymiz: yomg'ir yog'sa, biz o'zimiz bilan soyabon olamiz ... (Yigitlar misollar berishda davom etadilar). Bunday holatlar hayotimizda tez-tez uchraydi.


Keling, ertakni eslaylik:"Yo'llarning ayrig'ida Payg'ambar tosh yotadi va uning ustida: " To'g'ri ketasizmiot yutqazasiz, siz o'zingizni qutqarasiz; chap ketasizmi- o'zim yutqazasiz, ot qutqarasiz; bevosita ketasizmi...

Shunday qilib, yangi turdagi algoritm paydo bo'ladi.
- Uni nima deb atagan bo'lardingiz?

Uni aniqlashga harakat qiling.(Tarmoqlanish algoritmi - bu algoritm bo'lib, unda shartga qarab u yoki bu harakatlar ketma-ketligi bajariladi)
– Quyida shoxlangan shakllar keltirilgan. Farqi nimada? Siz ularni nima deb atagan bo'lardingiz?

Endi darsimizning mavzusi va maqsadlarini shakllantirishga harakat qiling:

Darsning maqsadi:

    tarmoqlanishning algoritmik tuzilishi bilan tanishish;

    tarmoqlanish algoritmlarini blok-sxemalar shaklida tasvirlashni o'rganish.

Dallanishning to'liq shakli

AGARholatkeyinharakat 1boshqaharakat 2(AgarholatBuharakat 1aks holdaharakat

To'liq bo'lmagan shakl

AGARholatkeyinharakat 1

Tarmoqli algoritmlarni oqim diagrammasi shaklida qo'llash misollari:

Qaldirg'ochlar pastdan uchsa, yomg'ir yog'adi, aks holda yomg'ir bo'lmaydi.

Agar ob-havo yaxshi bo'lsa, men uy vazifamni bajarishdan oldin chang'iga boraman.

IV. O'rganilgan materialni mustahkamlash

Vazifa № 1

Siz kinoga borasiz. Kinoga yaqinlashib, siz bugun ikkita film namoyish etilayotganini bilib olasiz: Garri Potterning yangi seriyasi va Silvestr Stallone ishtirokidagi yangi jangovar film. Agar sizda birinchisiga chiptalar bo'lsa, uni ko'rishga borasiz, aks holda siz jangovar filmni tomosha qilasiz.

Vazifa 2

2

Keling, BASIC tilida dastur yozishga harakat qilaylik

10 REM

20 KIRISH x

30 IF x<0 THEN y=8+x ELSE y=4*x+10

40 Chop etishy

50 OXIRI

Amaliy ish

Har bir talaba kompyuterda o'tiradi. Ish stolida vazifalar mavjud, u taklif qilingan topshiriqlardan istalgan birini tanlaydi va dasturni kompyuterga yozadi, natijani o'qituvchiga xabar qiladi.

Vazifalar:

Muammo 1. Ikkita raqam berilgan. Kattaroq raqamni kvadratga aylantiring.

2-masala Ikkita raqam berilgan. Katta sonni uch marta, kichikroq raqamni kvadratga ko'paytiring

Masala 3. Ikki sonning kattasining kvadrati bilan kichikining kubi orasidagi yig‘indini toping.

Muammo 4. Musbat sonni beshga oshiring.

Masala 5. Y= x 5 +1 x>10

X 3 X<10

4. Darsni yakunlash

Bizning butun hayotimiz murakkab "tarmoqli" tuzilmaning algoritmidir va biz har bir harakatimiz qasddan bo'lishini va to'g'ri, munosib natijaga olib kelishini ta'minlashga harakat qilishimiz kerak!

5. Reflektsiya

Darsimizning natijasi qanday?
Algoritmga rioya qiling: Agar sizga dars yoqqan bo'lsa, qizil tabassumni, aks holda ko'k tabassumni ko'taring.

O'qituvchi: Bu algoritmik tuzilma nima? Shu paytgacha qanday shoxlanishni amalga oshirdingiz?

6. D/z p4.2.2, 114-bet

Foydalanilgan adabiyotlar ro'yxati

    N.G.Ugrninovich “Informatika va AKT 9”, asosiy kurs – Moskva, BINOM, 2012 yil.

    A.A.Chernov "9-11-sinflarda informatika bo'yicha darsliklar", Volgograd, o'qituvchi, 2006 yil.


Tarmoqlanish shartga qarab u yoki bu harakatlar ketma-ketligi bajariladigan algoritmik dizayndir.

Tarmoqlanishni o'z ichiga olgan algoritm tuzilishi deyiladi shoxlanish. Ushbu tuzilma ikkita muqobil o'rtasida tanlovni ta'minlaydi. Keyingi ijro yo'nalishini aniqlash uchun shart tekshiruvi o'tkaziladi. Har bir yo'l umumiy birlashma nuqtasiga olib keladi, shuning uchun qaysi yo'l tanlanganidan qat'i nazar, algoritm bajarishda davom etadi.

Sxemada tarmoqlanish holati olmosda tasvirlangan, undan IKKI strelkalar albatta chiqishi kerak - birinchisi ("Ha" o'qi) shart bajarilgan taqdirda bajariladigan buyruqlarni bildiradi; ikkinchi ("Yo'q" o'q) - shart bajarilmasa, bajariladigan buyruqlar uchun.

Biroq, hayotda tez-tez shunday vaziyatlar bo'ladiki, algoritm bo'yicha harakatning bir yo'nalishi bo'yicha bitta harakat bajarilmaydi, lekin boshqa yo'nalishda bir nechta harakatlar bajarilishi mumkin. Ya'ni, tarmoqlanish algoritmi to'liq (yuqoridagi rasmga qarang) yoki to'liq bo'lmagan bo'lishi mumkin.

Og'zaki shakllantirishda filial yozuvi quyidagicha ko'rinadi:

AGAR <условие выбора > BU <команды, выполняемые при соблюдении условия> BOSHQA <команды, выполняемые при несоблюдении условия>

Nima bo'ldi " tanlash sharti"? Albatta, bu qiymatlarni qabul qiluvchi mantiqiy ifodadir rost(to'g'ri) yoki yolg'on(yolg'on). Agar rost bo'lsa, u holda asosiy bo'lim bajariladi, agar noto'g'ri bo'lsa, yon filial bajariladi.

D.M.ning dasturlash masalalari to'plamidan masalani ko'rib chiqamiz. Zlatopolskiy:

Vazifa:

Yechim algoritmi:

Paskal

Shartli operator

To'liq shakl

agar<условие выбора >keyin<команды, выполняемые при соблюдении условия>boshqa<команды, выполняемые при несоблюдении условия>

Diqqat! Oldin hech qachon Nuqtali vergul qo'ymang!

To'liq bo'lmagan shakl

agar<условие выбора >keyin<команды, выполняемые при соблюдении условия>;

Aloqa operatsiyalari:

>ko'proq< меньше, >< не равно, >= dan katta yoki teng<=меньше или равно, = равно.

Mantiqiy operatsiyalar:

emas - inkor, va - birikma (VA), yoki - dis'yunksiya (OR), xor - eksklyuziv yoki

Paskal vazifasi

Z dasturi;
var
x,y: haqiqiy;
Boshlanishi
write("Enter x=");
o'qish (x);
agar x>0 bo'lsa, y:=sqr(sin(x))
else y:=1-sin(sqr(x));
writeln("y=",y:6:4);
Oxiri.

C++

Shartli operator

To'liq shakl

agar (<условие выбора >) <команды, выполняемые при соблюдении условия>; boshqa<команды, выполняемые при несоблюдении условия>

To'liq bo'lmagan shakl

agar (<условие выбора >) <команды, выполняемые при соблюдении условия>;

Aloqa operatsiyalari:

>ko'proq< меньше, != не равно, >= dan katta yoki teng<=меньше или равно, == равно.

Mantiqiy operatsiyalar:

Inkor, && - birikma (VA), || -dizyunktsiya (OR)

C++ da muammo

#o'z ichiga oladi
#o'z ichiga oladi
#o'z ichiga oladi
std nom maydonidan foydalanish;
int main())(
float x, y;
cout<< "Vvedite x=\n";
cin >> x;
agar (x>0) y=pow(sin(x),2); else y=1-sin(pow(x,2));
cout<< "y =" << y ;
tizim ("pauza");
qaytish 0;
}

Yuqorida aytib o'tganimizdek, har qanday algoritm bir nechta asosiy tuzilmalardan iborat bo'lishi mumkin. Ulardan eng oddiyi chiziqli (quyida). Unda buyruqlar yozilgan ketma-ketlikda bir marta bajariladi. Biroq, muammoni hal qilish bo'yicha harakatlar ketma-ketligi har qanday dastlabki ma'lumotlar uchun har doim ham bir xil emas. Agar biror bosqichda ijrochi bir nechta variantdan birini tanlashi kerak bo'lsa, algoritmda tarmoqlanish qo'llaniladi.

Tarmoqlangan tuzilma algoritmida (tarmoqlanish) Muayyan shartning haqiqat yoki noto'g'riligiga qarab, ikkita qator buyruqlardan biri tanlanadi.

Tarmoqlangan dasturga misol

Blok diagrammasi

Paskal tilida dastur


dastur tanlash;

var a, b, c, d: haqiqiy;

boshlanishi

readln(a, b, c);

d := b * b - 4 * a * c;

agar d< 0

keyin writeln ("ildiz yo'q")

boshqa writeln("ildizlar bor");

oxiri.

E'tibor bering, keyin va boshqa so'zlardan oldin nuqta-vergul qo'yilmaydi - ular birning qismlari hisoblanadi shartli gap agar... keyin... boshqacha.

Agar bo'lsa agar shart noto'g'ri bo'lsa, hech qanday harakat bajarilmaydi, oqim sxemasida "YO'Q" strelkasiga hech qanday blok chizilmaydi va shartli bayonot yozuvida "else" tushirilmaydi.

Agar seriya bir nechta jamoadan iborat bo'lsa, unda yakunlanishi kerak operator qavslari boshlanadi... end.

Masalan:

agarx > 0

keyinboshlanishi

Y:= sqrt(x);

Z:= z + y;

oxiri

boshqaz:= z + x;

Agar dasturda filial mavjud bo'lsa, sizga kerak ...

    Qaysi variantlar mavjudligini va jami nechtasini aniqlang. Shartli gaplar soni variantlar sonidan bitta kam bo'ladi.

    Har bir variant qanday sharoitlarda bajarilishi kerakligini bilib oling.

    Agar ikkitadan ortiq variant mavjud bo'lsa, shartlarni tekshirish ketma-ketligini tanlang. Agar kerak bo'lsa, blok diagramma yarating.

    Algoritmni dasturlash tilida yozing.

    Dasturni sinab ko'rish uchun ma'lumotlarni tanlang (sinovga ruxsat beruvchi ma'lumotlar to'plamini taqdim eting har harakat varianti).

Taqqoslash operatsiyalari

Paskalda shartlarni yozishda quyidagi taqqoslash amallaridan foydalanish mumkin:

Operatsiya

Belgilash

Misol kiritish

Tengmi?

d = 0

Ko'proq?

x + y > 100

Ozroq?

z< 5 * x

Katta yoki tengmi?

sin(a) >= 0,5

Kammi yoki tengmi?

v<= 60

Teng emasmi?

y<> 0

Taqqoslash operatsiyasining natijasi har doim mantiqiy qiymat bo'ladi - yolg'on yoki haqiqat.

Mantiqiy operatsiyalar

Ko'pincha tekshirilishi kerak bo'lgan holatni bitta taqqoslash yordamida ifodalab bo'lmaydi. Keyin mantiqiy amallar yordamida tuzilgan qo'shma shartlardan foydalaning. Paskal dasturlash tilida ulardan uchtasi mavjud (ba'zi ilovalarda to'rttasi mavjud):

Operatsiya

Belgilash

Natija

Misol kiritish

"VA"
(bog'lanish)

agar ikkala operand ham to'g'ri bo'lsa, "to'g'ri" (Va birinchi,Va ikkinchi)

(x > -2) va (x< 2)

"Yoki"

(ajralish)

Agar kamida bitta operand to'g'ri bo'lsa, "to'g'ri" (yoki birinchi,yoki ikkinchi)

(x< -2) or (x > 2)

"Yo'q"

(inversiya)

operand noto'g'ri bo'lsa, "to'g'ri"

emas (a > b)

Vazifalar

1. Blok-sxemalarga algoritm elementlarining belgilarini daftarga chizing (bu raqamlar: algoritmning boshi va oxirini, ma’lumotlarni kiritish va chiqarishni, ishlov berishni, holatni tekshirishni ko‘rsatadi).

2. Quyidagi ifodaning x=1, y=2 bo‘lganda qiymatini aniqlang:

a) (x >= 0) yoki (y * y<> 4)

b) (x * y<>0) va (x > y)

c) ((x * y > 0) emas) va (y > x)

a) (x >= 0) va (y * y<> 4)

b) (x * y<>0) yoki (x< y)

c) (yo'q (x * y< 0))or (y < x)

3. Paskal qoidalaridan foydalanib quyidagi ifodalarni yozing:

a) x 2 dan katta va z -3 dan kichik;

b) d 0 dan kichik yoki teng yoki w d dan katta;

c) -10 ≤ z< 0.

a) a 8 dan kichik yoki b -10 dan katta;

b) s k dan katta yoki teng, k esa 0 dan kichik;

c) 0< y ≤ 100.

4. Paskal tilida... ni belgilaydigan dastur tuzing.

Ikki masofaning qaysi biri (S1 yoki S2) kattaroq bo'lsa, ulardan birinchisi metrda, ikkinchisi esa latifada kiritilsa.

Malumot uchun:

1 metr = 2,134 m

Ikkita sumkaning qaysi biri og'irroq bo'lsa, ulardan birinchisining massasi (m1) kilogrammda, ikkinchisining (m2) kilogrammda kiritilishi sharti bilan.

Malumot uchun:

1 pud = 16,38 kg

Tarmoqlanish algoritmi - shartga qarab u yoki bu harakatlar ketma-ketligi bajariladigan algoritm.

Ko'pgina hollarda, muayyan sharoitlarda bir harakatlar ketma-ketligi va boshqa sharoitlarda bajarilishi talab qilinadi.

Butun dastur buyruqlardan (operatorlardan) iborat. Buyruqlar oddiy yoki murakkab bo'lishi mumkin (boshqa buyruqlar ichida joylashgan buyruqlar). Kompozit buyruqlar odatda boshqaruv tuzilmalari deb ataladi. Bu shuni ta'kidlaydiki, ushbu bayonotlar dasturning keyingi borishini nazorat qiladi.

Paskalda filial operatori (shartli operator)

Hisob-kitoblarni bir necha yo'nalishda tarmoqlanishiga ruxsat berish uchun dizayn

AGAR< SHART >KEYIN< OPERATOR 1> BOSHQA<ОПЕРАТОР 2>Agar shart rost (TRUE) bo'lsa, u holda<оператор 1>(orasida turish KEYIN Va BOSHQA), A<оператор 2>(keyin turadi BOSHQA) o'tkazib yuboriladi. Agar shart to'g'ri bo'lmasa (FALSE), keyin<оператор 1>e'tiborga olinmaydi va bajariladi<оператор 2>.

AGAR - agar, THEN - keyin, ELSE - aks holda.

Operatorning to'liq bo'lmagan shakli quyidagicha ko'rinadi:

AGAR<УСЛОВИЕ>KEYIN<ОПЕРАТОР>

Agar shart rost, keyin dastur amalga oshiradi kalit so'zdan keyin keladigan operator KEYIN va odatdagi harakat yo'nalishini davom ettiradi. Agar holatYo'q adolatli, keyin operator KEYINYo'q amalga oshirildi, va dastur darhol normal ishlashga qaytadi. Dizayn AGAR... KEYIN shartning haqiqiyligiga qarab, bayonotni bajarish yoki bu bayonotni o'tkazib yuborish imkonini beradi. Shartlar - ular quyidagilardan foydalanadilar taqqoslash operatorlari:

Taqqoslash belgisining o'ng va chap tomonida bir xil turga tegishli miqdorlar bo'lishi kerak. Taqqoslash natijasida TRUE yoki FALSE qiymatiga ega bo'lgan mantiqiy qiymat olinadi.

Misol: 5<7 - ИСТИНА; 8=12 -ЛОЖЬ (проверяем равно ли 8 12, Biz 8=12 ekanligini tasdiqlamaymiz, tekshiramiz);

Shart yaratishda siz mantiqiy amallardan foydalanishingiz mumkin: va – mantiqiy ko‘paytirish yoki – mantiqiy qo‘shish, inkor qilish emas. AGAR(a<0) and (b<0)KEYIN...

Misol: Kvadrat tenglamani yechish. Kvadrat tenglamaning yechimi diskriminantning qiymatiga bog'liq.

VAR a, b, c, d,x, x1,x2: REAL;

WRITELN("vvedi a b c");

AGAR d<0 THEN WRITELN ("net") ELSE

AGAR d=0 bo'lsa, BOSHLASH

x:=-b/(2*a); WRITELN("koren",x)

x1:=(-b-SQRT(d))/(2*a);

x2:=(-b+SQRT(d))/(2*a);

WRITELN("korni",x1, x2);

16 Algoritmik tuzilma “tsikl”. Buyruqni takrorlang.

Kompyuterlar murakkab iboralarning ma'nosini hisoblashda emas, balki nisbatan oddiy amallarni kichik o'zgarishlar bilan qayta-qayta takrorlashda eng yaxshisidir. Hatto juda oddiy hisob-kitoblar ham odamni chalg'itishi mumkin, agar ularni minglab marta takrorlash kerak bo'lsa va odam millionlab marta operatsiyalarni takrorlashga mutlaqo qodir emas.

Dasturchilar doimiy ravishda takroriy hisob-kitoblarga ehtiyoj sezadilar. Misol uchun, agar siz "o" harfi matnda necha marta paydo bo'lishini hisoblashingiz kerak bo'lsa, barcha harflardan o'tishingiz kerak. Ushbu dasturning soddaligiga qaramay, inson uchun uni bajarish juda qiyin, lekin kompyuter uchun bu bir necha soniya davom etadigan vazifadir.

Tsiklik algoritm - bu ma'lum bir necha marta yoki belgilangan shart bajarilgunga qadar takrorlanishi kerak bo'lgan harakatlar tavsifi.

Takroriy harakatlar ro'yxati tsiklning tanasi deb ataladi.

Shanba kuni kechqurun siz televizor ko'rasiz. Vaqti-vaqti bilan soatingizga qaraysiz va agar vaqt yarim tundan kamroq bo'lsa, siz televizor ko'rishni davom ettirasiz, agar u bo'lmasa, teleko'rsatuvlarni tomosha qilishni to'xtatasiz.

Ushbu turdagi tsikllar deyiladi - oldingi shartli halqalar .

Paskalda ular quyidagicha yoziladi:

WHILE sharti DO operatori; Bu siklda shart tekshiriladi va agar u rost bo'lsa (TRUE) bo'lsa, u holda tsiklning tanasi bajariladi, keyin shart yana tekshiriladi... va shu shart to'g'ri bo'lguncha davom etadi. Agar bir nechta operatorlar bo'lsa, biz ularni start-end qatoriga kiritamiz. Misol: Berilganidan kichik barcha natural sonlarni chop eting.

a:=0; raqam:=10; HAQIDA a

WRITELN(a); a:=a+1; OXIRI;

Shuni ta'kidlash kerakki, tsikl hech qachon ijro etilmasligi mumkin(agar shart dastlab to'g'ri bo'lmasa, masalan. a=5, a raqamlar=4). Va aksincha, agar shart o'zgaruvchining har qanday qiymatlari uchun to'g'ri bo'lsa, u holda tsikl bo'ladi cheksiz ko'p marta bajariladi(bo'ladi ilmoq).

Siz qutidagi barcha qalamlarni keskinlashtirishingiz kerak. Bitta qalamni charxlab, bir chetga qo‘yasiz. Keyin qutida qalamlar qolgan yoki yo'qligini tekshirasiz. Agar shart noto'g'ri bo'lsa, "qalamni o'tkirlash" harakati yana amalga oshiriladi. Shart to'g'ri bo'lishi bilan, tsikl tugaydi.

Ushbu turdagi tsikllar deyiladi - postshartli tsikllar .

TAKRORLASHoperator;

TIL holati;

Bu sikl avvalgisidan faqat shart rost bo'lgunga qadar (ya'ni butunlay teskari) bajarilishi bilan farq qiladi. Bunday turdagi ilmoqlar, shartdan qat'i nazar, pastadir tanasi kamida bir marta bajarilishi bilan farqlanadi. Vaziyat halqa tanasining birinchi bajarilishidan keyin tekshiriladi.

Misol uchun, jismoniy tarbiya darsida stadion bo'ylab bir nechta aylanishlarni yugurishingiz kerak.

Bunday tsikllar deyiladi - qarama-qarshi halqalar .

UCHUN Hisoblagich := StartValue TO ConValue QILINGhalqa tanasi; Odatiy bo'lib, pastadir bosqichi 1, ya'ni. Har safar pastadir tanasidan o'tgandan so'ng, hisoblagich bittaga ortadi.

Pastga tushadigan tsikl:

UCHUN Hisoblagich := StartValue PASTGA ConValue QILINGhalqa tanasi;

Loop bosqichi -1.

Misol: 1 dan 100 gacha bo'lgan barcha raqamlarni ko'rsatish. Buning uchun quyidagi dasturni yozishingiz mumkin:

WRITELN('1');

WRITELN('2');

WRITELN('3');

WRITELN('99');

WRITELN('100');

Faqat 102 qator ;-). Xuddi shu dasturni ancha qisqaroq yozish mumkin bo'lsa-da:

FOR i:=1 TO 100 DO WRITELN(i);

Sizga maqola yoqdimi? Do'stlaringizga ulashing: