ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

06.05.2009, 23:16
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 Kuzya так открой в делфи этот модуль и погляди как сделано это там. Там в основном это примитивные функции которые можно свести к паскелевским довольно просто.
|
|
|

06.05.2009, 23:17
|
|
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
если слишком часто обновляем канву, возможна такая ошибка.
попробуй:
Код:
procedure Tform1.Timer1Timer(sender:Tobject);
const Busy:Boolean = false;
begin
if Busy then exit else busy := true;
// ...
// тут твой код
// ...
Busy := false;
end;
|
|
|

06.05.2009, 23:19
|
|
Познающий
Регистрация: 11.03.2009
Сообщений: 70
Провел на форуме: 251358
Репутация:
6
|
|
Помогите пожалуйста с задачкой...
Методом итераций вычислить корень уравнения вида f(x)=0, расположенный в интервале
[A, B], с абсолютной погрешностью в соответствии с вариантом задания. Определить также число итераций, необходимое для нахождения корня.
уравнение: 3*sin(sqrt(x))+0,35*x-3,8=0
отрезок: [2;3]
точность: 1E-4
буду очень благодарен, ибо даже в условие задачи "невдупляю" =)
|
|
|

07.05.2009, 02:59
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от eLWAux
если слишком часто обновляем канву, возможна такая ошибка.
попробуй:
Код:
procedure Tform1.Timer1Timer(sender:Tobject);
const Busy:Boolean = false;
begin
if Busy then exit else busy := true;
// ...
// тут твой код
// ...
Busy := false;
end;
А чем этот код отличается от обычного Sleep ?
|
|
|

07.05.2009, 08:42
|
|
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме: 140661
Репутация:
313
|
|
Balvan, да. Если первая дата больше второй то в указанную переменную вносится true и наоборот.
|
|
|

07.05.2009, 14:27
|
|
Познавший АНТИЧАТ
Регистрация: 07.05.2006
Сообщений: 1,031
Провел на форуме: 5885100
Репутация:
773
|
|
есть опендиалог, выбираю фаил, путь записываеться в бд... дальше работаю с этим путем.. так вот, как мне записать не полный путь а относительный папки где лежит exe проги? тоесть не С:\\papka\file а протсо file
|
|
|

07.05.2009, 14:44
|
|
Познающий
Регистрация: 31.08.2007
Сообщений: 94
Провел на форуме: 422909
Репутация:
200
|
|
Код:
with OPenDialog1 do
if execute then
Label1.Caption:=ExtractFilePath(filename);
|
|
|

07.05.2009, 14:50
|
|
Banned
Регистрация: 20.06.2008
Сообщений: 296
Провел на форуме: 1385078
Репутация:
126
|
|
PASCAL
меется массив temp[1..7]
в него занесены значения температур за неделю... тоесть 7 штук...
вот и данные из массива нужно вывести в порядке возрастания!
|
|
|

07.05.2009, 16:40
|
|
Познающий
Регистрация: 11.03.2009
Сообщений: 70
Провел на форуме: 251358
Репутация:
6
|
|
Сообщение от Kuzya
Balvan, да. Если первая дата больше второй то в указанную переменную вносится true и наоборот.
Вот один извращённый метод через кол-во дней ))) ну в общем также можно просто строки в цифры и сравнивать)) но этот метод наверняка... =D
type
mymas=array[1..12] of integer;
const d1:mymas=(0,31,59,90,120,151,181,212,243,273,304,3 34);
d2:mymas=(0,31,60,91,121,152,182,213,244,274,305,3 35);
var data:string[10];
d:mymas;
god,mes,den,kol_v:integer;
kol_dney:array[1..3] of longint;
er,i:integer;
begin
for i:=1 to 2 do
begin
writeln('Vvedite datu v formate GGGG.MM.DD');
readln(data);
Val(Copy(data,1,4),god,er);
Val(Copy(data,6,2),mes,er);
Val(Copy(data,9,2),den,er);
{Tupaya proverka goda na visokosnost}
if ((god mod 4)=0) and (((god mod 100)<>0)or((god mod 400)=0)) then d:= d2 {Dlya vicokosnogo}
else d:= d1;
kol_v:=((god-1) div 4)-((god-1) div 100)+((god-1) div 400);
kol_dney[i]:=god*365+kol_v+d[mes]+den;
end;
if kol_dney[2]=kol_dney[1] then writeln('true')
else
writeln('false');
writeln('Press "Enter"...');
readln;
|
|
|

07.05.2009, 16:51
|
|
Познающий
Регистрация: 11.03.2009
Сообщений: 70
Провел на форуме: 251358
Репутация:
6
|
|
Сообщение от F4R
PASCAL
меется массив temp[1..7]
в него занесены значения температур за неделю... тоесть 7 штук...
вот и данные из массива нужно вывести в порядке возрастания!
моно что-то типо этого:
for i:=1 to N-1 do
for j:=i+1 to N do
if a[j]>a[i] then
begin
temp:=a[j];
a[j]:=a[i];
a[j+1]=temp;
end;
а вообще http://lmgtfy.com/?q=%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B 2%D0%BA%D0%B0+%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2 %D0%B0+Pascal
Последний раз редактировалось Balvan; 07.05.2009 в 16:57..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|