Другие языки программирования и технологии
помогите оптимизировать программу qBasic
Нужно заполнить двумерный массив 6х6 след. образом: 3 3 3 3 3 3 3 2 2 2 2 3 3 2 1 1 2 3 3 2 1 1 2 3 3 2 2 2 2 3 3 3 3 3 3 3 написал, работает (см.ниже): CLS DIM a(6, 6) FOR x = 1 TO 6 FOR y = 1 TO 6 a(x, y) = 3 NEXT y NEXT x FOR x = 2 TO 5 FOR y = 2 TO 5 a(x, y) = 2 NEXT y NEXT x FOR x = 3 TO 4 FOR y = 3 TO 4 a(x, y) = 1 NEXT y NEXT x FOR x = 1 TO 6 FOR y = 1 TO 6 PRINT USING "##"; a(x, y); NEXT y PRINT NEXT x Препод говорит, что можно сделать по другому, а как не говорит. У меня идеи уже закончились, никак не получается. Подскажите
CLS
DIM a(6, 6)
pMin = 1
pMax = 6
symb = 3
FOR j = 3 TO 1 STEP -1
FOR i = pMin TO pMax
a(i, pMin) = symb
a(i, pMax) = symb
a(pMin, i) = symb
a(pMax, i) = symb
NEXT i
pMin = pMin + 1
pMax = pMax - 1
symb = symb - 1
NEXT j
FOR x = 1 TO 6
FOR y = 1 TO 6
PRINT USING "##"; a(x, y);
NEXT y
PRINT
NEXT x
Вот я только до этого допер....
DIM a(6, 6)
pMin = 1
pMax = 6
symb = 3
FOR j = 3 TO 1 STEP -1
FOR i = pMin TO pMax
a(i, pMin) = symb
a(i, pMax) = symb
a(pMin, i) = symb
a(pMax, i) = symb
NEXT i
pMin = pMin + 1
pMax = pMax - 1
symb = symb - 1
NEXT j
FOR x = 1 TO 6
FOR y = 1 TO 6
PRINT USING "##"; a(x, y);
NEXT y
NEXT x
Вот я только до этого допер....
спроси у препода, хотя бы в каком направлениии думать.
долго сидел - идей много, но они не короче этой
долго сидел - идей много, но они не короче этой
Вообще-то, наверно, любую программу можно создавать по разным алгоритмам. Хотя и говорится, что хороша верёвка длинная, а программа короткая, всё-таки не следует на начальном уровне изучения программирования стремиться к созданию компактных программ. Лишь бы работала и была понятна самому автору. А создание оптимальной программы придёт с опытом программирования. Так что препод не совсем прав, не надо спешить делать из начинающего сразу программиста-виртуоза.
А подход может быть и таким: заполнение по строкам - или по столбцам (что в принципе одно и то же, конечно, но он же просит сделать по другому) ))) Или рассмотреть заполнение данного массива с точки зрения его симметрии...
А подход может быть и таким: заполнение по строкам - или по столбцам (что в принципе одно и то же, конечно, но он же просит сделать по другому) ))) Или рассмотреть заполнение данного массива с точки зрения его симметрии...
Интересная задачка :-)
Вроде простенькая, а в голову ничего путного не приходит. Если за один проход все делать, можно так (алгоритм на Паскале)
for i:=1 to 6 do
for j:=1 to 6 do
if abs(i-j)=5 then a[i,j]:=3
else if ((i=3) or (i=4) or (j=3) or (j=4)) then a[i,j]:=1
else a[i,j]:=2;
abs - модуль числа. Только зачем оно это надо? Разве для разнообразия :-) Короче и проще не получается
Вроде простенькая, а в голову ничего путного не приходит. Если за один проход все делать, можно так (алгоритм на Паскале)
for i:=1 to 6 do
for j:=1 to 6 do
if abs(i-j)=5 then a[i,j]:=3
else if ((i=3) or (i=4) or (j=3) or (j=4)) then a[i,j]:=1
else a[i,j]:=2;
abs - модуль числа. Только зачем оно это надо? Разве для разнообразия :-) Короче и проще не получается
Похожие вопросы
- Помогите написать в QBasic программу-фильтр! У МЕНЯ ЗАЧЕТ!!!
- Помогите найти ошибку qbasic
- C++.Обычная задача : найти кол-во пар (x,y) , удовлетворяющих условию X^2+Y^2<N. Помогите оптимизировать.
- Помогите написать программу со switch в СИ
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите написать программу выключения компьютера на С++
- Помогите исправить программу
- помогите написать программы в ассемблере
- Помогите написать программу в с++
- Помогите написать программу на Visual Basic (найти ошибку)