Матрица L(n,k) состоит из нулей и единиц. Найти в ней самую длинную цепочку стоящих нулей по горизонтали,вертикали или диагонали — QBasic(Бейсик)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
CLS: PRINT "Vvedite kolichestvo"
INPUT " Stolbcov:", n
INPUT " Strok:", k
 
DIM L(n, k) AS INTEGER, hor, hs, hn, ver, vs, vn, dia, ds, dn
 
IF n < 2 THEN PRINT "malo stolbcov! Vihod!": END
IF k < 2 THEN PRINT "malo strok! Vihod!": END
 
'Zapolnim matricu
RANDOMIZE TIMER: PRINT: COLOR 14
FOR iy = 1 TO k: LOCATE , 3: FOR ix = 1 TO n
        L(ix, iy) = INT(RND * 2)
        PRINT STR$(L(ix, iy));
NEXT: PRINT: NEXT: COLOR 7
 
'ishem po gorizontali
FOR iy = 1 TO k: hs = 0: FOR ix = 1 TO n
        IF L(ix, iy) = 0 THEN
            hs = hs + 1
            IF hs > hor THEN hor = hs: hn = iy
        ELSE: hs = 0
        END IF
NEXT: NEXT
 
'ishem po verticali
FOR ix = 1 TO n: vs = 0: FOR iy = 1 TO k
        IF L(ix, iy) = 0 THEN
            vs = vs + 1
            IF vs > ver THEN ver = vs: vn = ix
        ELSE: vs = 0
        END IF
NEXT: NEXT
 
'ishem po diagonali
 
' .  .  .
 
'
PRINT CHR$(13) + "max chislo nulej po gorizontali:"; hor; "stroka:"; hn
PRINT "max chislo nulej po verticali:"; ver; "stolbec:"; vn

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment