Сформировать одномерный массив В из наименьших элементов диагоналей матрицы - QBasic
Формулировка задачи:
Задан двумерный целочисленный массив А из N строк и N столбцов. Сформировать одномерный массив В из наименьших элементов диагоналей, параллельных главной диагонали массива А.
Помогите пожалуйста!
Решение задачи: «Сформировать одномерный массив В из наименьших элементов диагоналей матрицы»
textual
Листинг программы
- CLS
- m = 8
- CONST p = " "
- DIM T(1 TO 8) AS STRING 'массив предложений
- DIM S(1 TO 8) ' массив количества слов в предложении
- DIM Slovo AS STRING ' самое длинное слово
- FOR i = 1 TO m
- INPUT "VVEDITE TEXT"; T(i) ' ввод предложений
- NEXT i
- FOR i = 1 TO m
- T(i) = p + T(i) + p ' каждое предложение окаймляется пробелами
- NEXT i
- FOR k = 1 TO m ' отсюда начинается поиск самого короткого по числу слов предложения
- i1 = 1 ' номер первого пробела
- DO
- i2 = INSTR(i1 + 1, T(k), p) ' поиск следующего пробела
- S(k) = S(k) + 1 ' каждый новый пробел это новое слово
- i1 = i2 ' конечный пробел передает свое значение начальному
- LOOP UNTIL LEN(T(k)) = i2
- NEXT k
- iMin = 1 ' отсюда начинается поиск предложения в котором минимум слов
- FOR i = 1 TO m
- IF S(iMin) > S(i) THEN iMin = i
- NEXT i
- k = iMin ' индекс предложения с минимумом слов
- MaxS = 1 ' начальная длина самого длинного слова
- i1 = 1 ' номер первого пробела
- DO
- i2 = INSTR(i1 + 1, T(k), p)
- IF MaxS < i2 - i1 - 1 THEN ' поиск слова максимальной длины
- MaxS = i2 - i1 - 1
- Slovo = MID$(T(k), i1 + 1, MaxS)
- END IF
- i1 = i2
- LOOP UNTIL LEN(T(k)) = i2
- T(iMin) = LTRIM$(RTRIM$(T(iMin))) ' убираются лишние пробелы
- PRINT T(iMin) ' вывод предложения
- PRINT Slovo ' вывод его самого длинного слова
- END
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д