| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Симплекс-метод.... пишу программу для курсовой |
| Автор: Anchuta88 20.6.2010, 15:25 | ||
| Пишу курсовую по матмоделям... Надо написать программу решения задачи линейного программирования симплекс-методом (минимизация)... Писала на примере максимизации... При выполнении команды выдает такое сообщение: Project1.exe raised exception class EConvertError with message"X1' is not a valid floating point value' Process stopped. Use Step or Run to continue Пожалуйста помогите, объяснте что не так((( я в программировании не шарю Вот код программы:
|
| Автор: ~FoX~ 20.6.2010, 22:44 |
| Anchuta88, На какой строке?.....Судя по сообщению, ошибка в преобразовании "X1" |
| Автор: Anchuta88 21.6.2010, 09:23 |
| Я вот понять и не могу... он выделяет строки в Project1 А так еще такие сообщения выдает: [Warning] Kursovaya_MatMod.pas(130): Variable 'VedSt' might not have been initialized // в этой строке VedEl := StrToFloat(StringGrid1.Cells[VedStol, VedSt]); [Warning] Kursovaya_MatMod.pas(123): Variable 'VedStol' might not have been initialized// в этой строке if ((A/StrToFloat(StringGrid1.Cells[VedStol, i])) > Amax) Эти строки идут в поиске ведущей строки... А еще меня смущает эта строчка StringGrid1.Cells[0, VedSt] := StringGrid1.Cells[VedStol, 0]; // Что она может значить? |
| Автор: la399fox 21.6.2010, 12:16 |
| Доброго времени суток, я сам недавно писал программу. Вот можна использовать готвый модуль simplex.pas http://pastebin.com/ndRYyati Результат защиты 5)) Приятного использования |
| Автор: kami 21.6.2010, 12:47 | ||
Варнинги - не ерунда, и внимание на них обращать надо На примере сразу двух варнингов:
Это же касается и Значит, эти переменные могут быть неинициализированы, что в принципе, видно из кода - им не присвоены начальные значения, а при прохождении циклов может получиться так, что не будут присвоены никакие. Что, само собой, непонятным образом скажется на вычислениях (например, выплывет List index out of bounds). |
| Автор: ~FoX~ 21.6.2010, 13:36 | ||||
Не могу себе представить радиус кривизны рук у программиста
В данном случае, даже если они не инициированы, то ничего не произойдет смертельного З.Ы.: Я лично все вары объявляю как i: integer = 0; старая привычка, избавляет от гемороя с инициализацией и мусором в ситуациях например
Но это уже оффтоп |
| Автор: Anchuta88 21.6.2010, 14:25 |
| На счет этой строчки StringGrid1.Cells[0, VedSt] := StringGrid1.Cells[VedStol, 0]; ...уже поняла)))) Здесь вместо значения ячейки 'S3' (в строках) присваивается значение 'X1' ~FoX~, на мыло отправила))) |
| Автор: ~FoX~ 21.6.2010, 15:05 | ||
Anchuta88, Либо вынеси VedSt := i за if
либо проверяй i на 0 |
| Автор: Anchuta88 21.6.2010, 16:00 | ||
| ~FoX~, наиогромнейшее спасибо)))) Только у меня терь другой вопрос... а почему не выводятся в листбокс значения 'Z' и где есть 'X' вот кусок из кода
|
| Автор: ~FoX~ 21.6.2010, 16:12 |
| Потому что 'Z' и 'z' это разные зеты )))) |
| Автор: Anchuta88 21.6.2010, 16:16 |
| В том то и дело что я их меняла и все равно не пашет((( И что делать с этим сообщением? Variable 'VedStol' might not have been initialized |
| Автор: ~FoX~ 21.6.2010, 16:34 |
| Anchuta88, ничего.... это нормальная реакция прекомпилятора....на всякие if, try, etc.... |
| Автор: Anchuta88 21.6.2010, 16:42 |
| А что с листбоксом делать? |
| Автор: ~FoX~ 21.6.2010, 16:47 |
| Условие if Amax = 0 then не выполнено, Amax=2 |
| Автор: Anchuta88 21.6.2010, 16:52 | ||
А это как? |
| Автор: ~FoX~ 21.6.2010, 16:59 |
| Да выполни трейс, посмотри на значения переменных и увидишь.... |
| Автор: Anchuta88 21.6.2010, 17:11 |
| Так... а терь для особо одаренных.... что есть трейс? |
| Автор: ~FoX~ 21.6.2010, 17:24 |
| F7 |
| Автор: Anchuta88 21.6.2010, 17:36 |
| Чёт ничего не меняется.... выделяет в Project1 строку... Я наверн что-то не так делаю?(((( |
| Автор: Rennigth 21.6.2010, 19:30 |
| Anchuta88, F5 на нужной строке, дальше пошагово на F8... |
| Автор: Anchuta88 21.6.2010, 19:46 |
| Спасибо всем)))) я нашла ошибку)))) ~FoX~, я действительно тормоз))) терь поняла, что вместо Amax=0 надо записать Amax>0 |
| Автор: ~FoX~ 22.6.2010, 13:41 |
| [off] Anchuta88, Умничка |