Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2012, 19:45   #1
jazzzeek
Новичок
Джуниор
 
Аватар для jazzzeek
 
Регистрация: 16.03.2012
Сообщений: 7
Печаль алгоритм правильный, а считает неверно

я как бы не нуп в делфи прямо таки, но прокосячился где-то. дело в том, что у меня прога состоит из четырех частей, почти одинакового кода, лишь переменные некоторые меняются. так вот при написании последней части возникает косяк. скопипастил, поменял что надо, запускается, но считает неправильно, левые вообще цифры, которых нет на форме. где ошибка может быть? прикрепил архив

Вложения
Тип файла: rar kursowane.rar (378.4 Кб, 17 просмотров)
jazzzeek вне форума Ответить с цитированием
Старый 16.03.2012, 20:18   #2
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Я не разобрался с переменными, откуда какая берет значение. слишком все запутано. Разбираться желания нет. Вы скажите на словах что должно считаться? И на рисунке красной стрелкой выделили 6 в эдите и 8 в ответе. При тех значениях, что должно быть в ответе?
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 16.03.2012, 22:28   #3
jazzzeek
Новичок
Джуниор
 
Аватар для jazzzeek
 
Регистрация: 16.03.2012
Сообщений: 7
По умолчанию

значит смысл в том, что если в колонке R1 6 больше чем 5 (а оно больше), то эта самая 6 пишется в label справа. а в лэйбле ни пять, ни шесть, а восемь. несколько раз проверял сам поэтапно написанное, но мой ответ не совпадает с label.caption
jazzzeek вне форума Ответить с цитированием
Старый 17.03.2012, 00:29   #4
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

попробуйте пойти от обратного:

значение в лабеле откуда-то берется? берется.
откуда? Label1.caption:=inttostr(d);
что такое d? откуда она появляется?...
ну и так далее, может путем логических рассуждений придете к причине ошибки.

а еще, если вы говорите про одинаковые куски кода, в которых только переменные разные,
то я так понимаю при написании проги вы копипастили, а потом просто переменные в разных кусках меняли, так ведь? )
ну так вот 95% что вы где-то переменную пропустили.

p.s.:
кстати, на будущее совет - комп всегда прав.
если что-то работает не так, то это юзер дурак.
примите это как аксиому - сам уже неоднократно убеждался =)
xrob вне форума Ответить с цитированием
Старый 17.03.2012, 00:32   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

код ужасный...

но для исправления конретно данной проблемы.
в модуле Unit2
пересите код присвоения с FormCreate на кнопку
вот так
Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
  // ОТСЮДА КОД УБРАТЬ
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
   // сюда вставить...
    e1:=strtoint(form2.edit1.Text);
    e2:=strtoint(form2.edit2.Text);
    e3:=strtoint(form2.edit3.Text);
    e4:=strtoint(form2.edit4.Text);
    e5:=strtoint(form2.edit5.Text);
    e6:=strtoint(form2.edit6.Text);
    e7:=strtoint(form2.edit7.Text);
    e8:=strtoint(form2.edit8.Text);
cap:=strtoint(form1.Edit1.Text);
maxprib:=0;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2012, 09:12   #6
jazzzeek
Новичок
Джуниор
 
Аватар для jazzzeek
 
Регистрация: 16.03.2012
Сообщений: 7
По умолчанию

Serge_Bliznykov, спасибо, все работает. Фактически, курсач сдан. По поводу ужасного кода. Что в нем ужаснуло? Какие советы на будущее дадите?
jazzzeek вне форума Ответить с цитированием
Старый 17.03.2012, 09:17   #7
jazzzeek
Новичок
Джуниор
 
Аватар для jazzzeek
 
Регистрация: 16.03.2012
Сообщений: 7
По умолчанию

xrob, тоже спасибо) я и сам убеждался в данной аксиоме, но здесь я несколько раз сам прошелся по коду, в качестве отладчика, и как бы все было норм) важно знать некоторые правила относительно классов и где что писать, с коими я знаком не в полном объеме.
jazzzeek вне форума Ответить с цитированием
Старый 17.03.2012, 11:40   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

За код не скажу, не смотрел, берегу психику )))
Но вот вагон эдитов не проще на TStringGrid заменить ?
Исходя из приведенных кусков - убирайте все ссылки на форму в методах которой идёт работа, т.е. просто внутри методов Tform2.что-то надо убрать все Form2.
Аналогично для др. форм
Второй осн. косяк - имена компонентов должны быть говорящие, и переменные, конечно, тоже, а то когда кнопок штук 5, уже тяжко понять, какая что делает.
По копипасте Сержа видно, что идентация (отступы) не по стандарту - хуже читаемость кода.
Ну и стандартные советы - побольше переменных и констант, разделение логики работы целевой и работы по отображению/считыванию с формы.
phomm вне форума Ответить с цитированием
Старый 17.03.2012, 12:38   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

phomm, согласен. +1

Цитата:
По поводу ужасного кода. Что в нем ужаснуло?
А мне больше всего не понравилось (по мимо вышесказанного phomm, это всё абсолютно верно), это то, что переменные, которые нужно использовать на одной форме, описаны на другой, этакая глобализация на весь проект..
взаимосвязи между формами должны быть строго оправданы и, как минимум, расшифрованы "говорящими" именами переменных + комментариями в коде.
а в вашем случае описывать переменные e1..e8 на форме1, чтобы использовать их на формах 2, 3 и т.д. - совсем не нужно...

ваш код чрезвычайно затруднителен к пониманию.. это и ужаснуло...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2012, 12:56   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

ТС, коли желаете учиться, могу поучить, поконсультировать, я всегда рад способным и заинтересованным ученикам.
Если есть желание разобраться у Вас и я найду время - могу порефакторить Ваш код, чтобы Вы воочию убедились.

Serge_Bliznykov, спасибо за согласие и дополнение (этого я как раз без разбора кода не мог знать). а вот плюсануть не могу, Вам почти всегда не могу - постоянно отказывают, мол я Вам и так уже наплюсовал )) вроде и другим плюсую, но для Вас мне систематически отказывают ))

Кстати, если кто знает, я сформулировал некую "доктрину" (первоначально на киберфоруме), по которой помощь тем, кто нуждается в коде, необходимо давать в максимально продуманном и грамотном (порой даже сложным для новичка) коде. Чтобы человек задумался, поэкспериментировал, поучился, или если ему только сдать код - то пытался его упростить (как раз понимание даст), ведь преподаватель заумный код легко может не принять ввиду его явного профессионализма (и прямого намёка на фриланс).

Собственно, я и предлагаю ТС такой подход, могу дать довольно сложный, но гибкий и "стильный" код (надо только время найти, если там много кода), чтобы поучиться и разобраться, ну плюс ссылок накидаю.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для решения СЛАУ методом Гаусса неверно считает (Delphi) Lisёноk Помощь студентам 7 25.09.2011 12:50
правильный алгоритм? Pekus Помощь студентам 2 19.05.2011 12:26
неверно считает? штохл Microsoft Office Excel 3 17.05.2010 22:24
Неверно отрабатывает алгоритм обратной геодезической засечки Arkuz Помощь студентам 2 19.12.2009 17:33
Pascal алгоритм вроди правильный, а прога не пашет tipson Помощь студентам 12 04.07.2009 15:50