у королевы всегда есть кофе (с)
Добрый вечер.
Пишу для ролевой игры имитацию броска кубика и подсчета суммы выброшенных значений (плюс модификаторы). Подсчет написан. Вывод результата числом работает. Однако хочу сделать дополнительный вывод результата в формате:
n1+n2+...nm, где n - значение, выпавшее на кубике, а m - количество кубиков (количество оборотов цикла). Сталкиваюсь с ошибкой, скриншот который выложу чуть ниже.
Итак, код программы
компиляцию проходим успешно. вводим значения, нажимаем button1. программа выдает такую ошибку:

если комменчу строчку mass[i]:=bufzn; все прекрасно. подскажите, что я делаю не так?
з.ы.: с сессией вопрос никак не связан, пишу для семейного пользования)
Пишу для ролевой игры имитацию броска кубика и подсчета суммы выброшенных значений (плюс модификаторы). Подсчет написан. Вывод результата числом работает. Однако хочу сделать дополнительный вывод результата в формате:
n1+n2+...nm, где n - значение, выпавшее на кубике, а m - количество кубиков (количество оборотов цикла). Сталкиваюсь с ошибкой, скриншот который выложу чуть ниже.
Итак, код программы
компиляцию проходим успешно. вводим значения, нажимаем button1. программа выдает такую ошибку:

если комменчу строчку mass[i]:=bufzn; все прекрасно. подскажите, что я делаю не так?
з.ы.: с сессией вопрос никак не связан, пишу для семейного пользования)
Но скорей всего причина ошибки указана выше.
Trotil, попробую сейчас с этим советом разобраться. если не получится, научите меня, пожалуйста, отслеживать, на каком шаге итерации ошибка происходит.
пыталась обозначать, как SetLength (mass, nkub+1), через nn:=nkub+1; SetLength (mass, nn) - ну мало ли, вдруг не воспринимает из-за +1, где nn - обозначена как integer.
или я неправильно как-то исправляю?
спасибо, товарищи. навели на истину.
но расскажите, пожалуйста, если кто в курсе, почему nn:=nkub+1; не работает, а nn:=nkub+100 - работает. не догоняю толком.
Где нынче так Паскаль преподают?
Оно у вас и не будет работать, вы вместо последовательного наращивания строки каждый раз присваиваете ей новое значение.
Рекомендую сначала собрать строку целиком через String := String + [что у вас там следующее], и только потом 1 раз записать её в Edt4.text
И не злоупотребляйте IntToStr и StrToInt в теле программы, если это можно сделать один раз перед выводом. Кстати, выводить советую в Memo или в listbox, чтобы сохранялась история бросков, иногда полезно.
Построчный прогон программы обычно называется step by step, поищите в хэлпе вашего средства разработки или рядом с кнопкой запуска проекта. Или F7.
спасибо всем отвечавшим. помогли разобраться. теперь все работает, как задумывалось)