Анастасия, Вам нужно поменять местами строки 60 и 61. Сейчас программа ищет только одну пару чисел, а по условию нужно выводить их все, т.к. вывод сообщения в Memo1 произойдет только после прохода двух циклов for (для параметров i и j)
Если хотите улучшить программу: можно добавить проверку на тот случай, если ни одной подходящей пары не будет найдено.
Можно еще в StringGrid'е оставить одну строку, т.к. остальные не используются, за это отвечает свойство RowCount
Мемо1 в начале процедуры желательно очистить от сообщений, Memo1.Lines.Clear; если только Вы не хотите хранить всю историю работы программы.
Анастасия, Вам нужно поменять местами строки 60 и 61. Сейчас программа ищет только одну пару чисел, а по условию нужно выводить их все, т.к. вывод сообщения в Memo1 произойдет только после прохода двух циклов for (для параметров i и j)
Если хотите улучшить программу: можно добавить проверку на тот случай, если ни одной подходящей пары не будет найдено.
Можно еще в StringGrid'е оставить одну строку, т.к. остальные не используются, за это отвечает свойство RowCount
Мемо1 в начале процедуры желательно очистить от сообщений, Memo1.Lines.Clear; если только Вы не хотите хранить всю историю работы программы.
Объяснение:
# python 3.6.2
while True:
reelLength = int(input('Введите длину мотка (от 1 до 100): '))
if reelLength <= 100 and reelLength >= 1:
break
else:
print('Неверный ввод!')
reelNum = 0
while True:
segmentLength = int(input('Введите длину куска (от 1 до 100): '))
if segmentLength <= 100 and segmentLength >= 1:
if segmentLength < reelLength:
reelLength -= segmentLength
reelNum += 1
continue
if segmentLength == reelLength:
reelLength -= segmentLength
reelNum += 1
print(f'Количество кусков: {reelNum:d}; Длина остатка: {reelLength:d}')
break
else:
print('Неверный ввод!')