G-MINOR Ответов: 2

Изучаю qbasic и пытаюсь понять код, который я только что написал


Итак, у меня была проблема с заданием hw, которое велело мне напечатать треугольник из звезд.

В конце концов я догадался, проверил и вытащил это.
DIM LINES AS INTEGER
CLS

INPUT "How many lines will your triangle be: ", LINES

FOR x = 1 TO LINES
    PRINT
    FOR y = 1 TO x
        PRINT "*";
    NEXT y
NEXT x
END


Код работает, но я не понимаю, как. Я быстро освоил программирование, но вложенные циклы большую часть времени оставляли меня в замешательстве. Теперь мне кажется странным изучать qbasic, но это то, что предлагает моя школа. Может кто-нибудь, пожалуйста, объяснить код, который я только что написал. И помогай мне делать, и для команд. Спасибо, я действительно далеко продвинулся с HW, так что мой учитель не помогает.

Что я уже пробовал:

Я догадался и проверил код и теперь запутался. Объяснение-это все, о чем я прошу. Попытался объяснить сам себе, но так ничего и не понял.

2 Ответов

Рейтинг:
18

Garth J Lancaster

Я бы начал с листа бумаги, так как у вас есть только 3 переменные, линии, X, Y

Я собираюсь использовать обозначение a < - b означает, что a становится значением b

Линии < - 5 в качестве отправной точки

X < - 1 (из 5)
Y < - 1 (из X, который равен 1)
Печать "*"
Строка 1, напечатана одна буква "*"

X < - 2 (из 5)
Y < - 1 (из X, который равен 2)
Печать "*"
Y < - 2 (из X, которое равно 2)
Печать "*"
Строка 2, напечатаны два "*"

X < - 3 (из 5)
Y < - 1 (из X, который равен 3)
Печать "*"
Y < - 2 (из X, которое равно 3)
Печать "*"
Y < - 3 (из X, которое равно 3)
Строка 3, 3 " * " напечатано

Таким образом, для каждой строки " X "в моем случае 5 (строк) Я собираюсь использовать "Y", чтобы напечатать количество звезд на этой строке-что равно X звездам - 1-я строка имеет 1 звезду, 2-я имеет 2 звезды, 3-я строка имеет 3 звезды, 4-я строка имеет 4 звезды, 5-я строка имеет 5 звезд

кстати, между двумя петлями X Y ie

NEXT Y
NEXT X


Я бы сделал что-то вроде

NEXT Y
PRINT (something to make a new line)
NEXT X


но прошло уже много времени с тех пор, как я делал что-либо основное, так что вам придется посмотреть это

это поможет ?


[РЕДАКТИРОВАТЬ]

Также легче увидеть "петли", Если вы сделаете отступ

FOR X = 1 to LINES
    FOR Y = 1 to X
    
    NEXT Y
NEXT X


[/РЕДАКТИРОВАТЬ]


G-MINOR

Спасибо, парень, что я получил от этого, так это то, что x говорит, сколько линий нужно для треугольника, а Y говорит, сколько звезд нужно поставить. Так как Y равно 1 к x. Это одно и то же число или строки. В этом есть смысл. Спасибо.

Рейтинг:
1

Patrice T

Я бы рекомендовал использовать отладчик, но я не помню, был ли он эффективен в QBasic.
Попробуйте эту ссылку из Университета Стандорд:
Учитесь программировать[^]
а этот
https://www.khanacademy.org/computing/computer-programming/programming/looping/p/nested-for-loops[^]

Ищите учебники по мере необходимости.