Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Проблема в TDE
Автор: RathaR 21.07.2009 19:48
Возникла такая вот проблемка: Задача, состоит в том, чтобы определить сколько кубиков можно поместить в здание формой цилиндра обрезаного вдоль его высоты, по линии диаметра(как ангар ) так чтобы все вместились и лежали ровно: Саму програму то я собсно написал, но вот возникла проблема, до помеченой строчки прога просто не доходит, пропусскает её и все последующие... Кампилятор TDE
program kyb; var m,r,a,I:integer; kr,k:real; begin read(m,r,a); k:=0; I:=0;
while I*a<r do begin inc(I); kr:=2*r-2*sqrt(r*r-I*I*a*a ); k:=k+int((2*r-kr)/a); end;
k:=k*(m div a); {<=== эта строчка, и всё что дальше игнорируется}
write(k); readln; end.
Интерено былобы узнать в чем ошибка
Автор: volvo 21.07.2009 20:18
Во-первых, что такое TDE (не Турбо Дельфи имеется в виду?), а во вторых - какие данные ты вводишь?
Автор: RathaR 21.07.2009 23:20
Цитата(volvo @ 21.07.2009 16:18)
Во-первых, что такое TDE (не Турбо Дельфи имеется в виду?), а во вторых - какие данные ты вводишь?
Turbo Delphi Explorer
m - длинна помещения, R - радиус полукруга, a - ребро куба (ящика), меня собственно интересует больше не сама задача, а то почему программа кампилируэться, а вот при выполнении посл строки игнорирует, и это не впервые, на других задачах были подобные вещи: после обьявления файла и его открытия прога не хочет читать с него данные, в то время как эта же прога на TP всё делает
Автор: volvo 21.07.2009 23:23
Я не спрашиваю, ЧТО значит какая буква, я спрашиваю, КАКИЕ ЦИФРЫ ты вводишь. Может у тебя вообще зацикливается все напрочь...
Автор: RathaR 21.07.2009 23:27
Цитата(volvo @ 21.07.2009 19:23)
Я не спрашиваю, ЧТО значит какая буква, я спрашиваю, КАКИЕ ЦИФРЫ ты вводишь. Может у тебя вообще зацикливается все напрочь...
вход данные 4 3 2 выход данные должно быть 4
нее.... из цыкла выходит правильно, я проверял
Автор: volvo 21.07.2009 23:37
Цитата
вход данные 4 3 2 выход данные должно быть 4
Только не в твоей программе, твоя программа вылетает при таких данных, потому, что при I = 2 выражение под корнем = (-7). Ищи ошибку...
Кстати, ты забыл второй строкой программы директиву
{$APPTYPE CONSOLE}
. Без нее у тебя программа вылетит при выполнении readln
Автор: RathaR 21.07.2009 23:48
Цитата(volvo @ 21.07.2009 19:37)
Кстати, ты забыл второй строкой программы директиву
{$APPTYPE CONSOLE}
. Без нее у тебя программа вылетит при выполнении readln
не, это есть, первые строки у меня это - Ctr+O+O, и ставлю минус на О, как мне обяснили это выключает оптимизатор, а оптимизатор это плохая штука которая мне не нужна и {$APPTYPE CONSOLE}