Як катак, як қарор
Баъзе расмҳоро катак ба катак тасаввур кардан осонтар аст. Расм n сатр ва m сутун дорад. Ҳар катаки (i, j) ё # аст ё .. Ҳарду давр аз ҳамаи катакҳо мегузаранд ва if қарор медиҳад, ки чӣ чоп шавад.
Чорчӯбаи расмро ба баландии
nсатр ва паҳноиmсутун чоп кунед:#дар ҳошия,.дар дохил.
Вуруд
Баромад
Катак дар ҳошия аст, вақте ки он дар сатри аввал ё охирин, ё дар сутуни аввал ё охирин бошад. Барнома инро дар ду қадам мегӯяд. Ҳамин қоида метавонад як if бо чор шарт бошад, ки бо or пайваст шудаанд.
Сатрҳо ва сутунҳо дар ин ҷо аз 1 ҳисоб мешаванд, бинобар ин сатри аввал i == 1 аст ва охирин i == n. Агар аз 0 ҳисоб кунед, сатри охирин i == n - 1 аст. Як усулро интихоб кунед ва дар тамоми барнома онро нигоҳ доред.
Диагоналҳо ва минтақаҳо
Барои мураббаъе аз n сатр ва n сутун диагоналҳо ва минтақаҳо шартҳои кӯтоҳ дар бораи i ва j доранд. Ба мураббаъ бо n = 7 нигоҳ кунед:
- Барои диагонали асосӣ, аз гӯшаи чапи боло ба гӯшаи рости поён:
i == j. - Барои диагонали дигар, аз гӯшаи рости боло ба гӯшаи чапи поён:
i + j == n + 1. - Болои диагонали асосӣ, дар тарафи рости он:
j > i. Зери он, дар тарафи чап:j < i. - Болои диагонали дигар, дар тарафи чапи он:
i + j < n + 1. Зери он, дар тарафи рост:i + j > n + 1. - Дар тахтаи шоҳмот катакҳое, ки рангашон бо ранги гӯшаи
(1, 1)якхела аст,(i + j) % 2 == 0-ро доранд.
Шартҳо бо and ва or якҷоя мешаванд. Катаке, ки болои ҳарду диагонал аст, j > i and i + j < n + 1, дар секунҷае аст, ки ба тарафи боло мерасад. Бо if ва elif ба ҳар катак ҳамагӣ як рамз диҳед ва аввал диагоналҳоро санҷед, баъд минтақаҳоро.
Ин расме аст, ки бо як минтақа сохта шудааст. Катак # мегирад, вақте ки болои диагонали асосӣ аст:
Акнун худро ба ҷои кошинкор гузоред. Фарш айнан ҳамон тавр мебарояд, ки барнома чоп мекунад. Катакҳоеро, ки кошин мегиранд, пеш аз оғози кор қайд кунед: