Вопрос № 28358: Здраствуйте!!! У меня очень простой вопрос!!!
Как посчитать обычный логарифм для любого числа(тоесть мне нужна функция)!!! log !!!...Вопрос № 28385: Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и ег...Вопрос № 28386: Здраствуйте уважаемые Эксперты. У меня такой вот вопрос.
Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и ег...Вопрос № 28403: Здравствуйте, уважаемые эксперты! Подскажите, пожайлуста, как в StringGrid выделить ячейку другим цветом, в зависимости от того, какое значение она имеет?
Спасибо!......
Вопрос № 28.358
Здраствуйте!!! У меня очень простой вопрос!!!
Как посчитать обычный логарифм для любого числа(тоесть мне нужна функция)!!! log !!!
Отправлен: 26.10.2005, 22:15
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов: 6 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ujin Antikvar
Здравствуйте, chikanok!
Ответ на этот вопрос очень простой и вытекает он из замены основания логарифма
сделать это можно так:
log b по основанию a можно заминить вот так ln(b)/ln(a)
Пример работы данной замены смтри в приложении
С Уважением,
Ujin Antikvar!!!
Приложение:
--------- Не зацикливайся на достигнутом, а двигайся в перед
Ответ отправил: Ujin Antikvar (статус: 2-ой класс)
Отправлен: 26.10.2005, 22:43
Отвечает: Master135
Здравствуйте, chikanok!
Обычных логарифмов не бывает - бывают логарифмы с основанием. В общем технология их вычисления опирается на числовые ряды ln|1-x|=-x-x^2/2-x^3/3....-X^(n+1)/(n+1). точность вычислений может задаваться, например, если точность 0.001, то отниматься члены ряда будут до тех пор, пока очередной член не станет<0/001.
ln|1+x|=x-(x^2)/2+(x^3)/3-...-(-1)^n*x^(n+1)/(n+1)
Ответ отправил: Master135 (статус: 10-ый класс)
Отправлен: 27.10.2005, 01:28
Отвечает: Romodos
Здравствуйте, chikanok!
Ну это мы по математике в 10 классе проходили все!
logyx=logzy/logzx
т.е log24=ln(4)/ln(2)
var x,osn,res:extended;
begin
x:=2;
osn:=4;
res:=ln(x)/ln(osn);
end;
--------- FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 27.10.2005, 05:06
Отвечает: Schmak
Здравствуйте, chikanok!
Есть 2 способа:
1) Подключить модуль Math и использовать функции из него: Log2, Log10, LogN
2) Вспомнить математику:
Известно что log a(b)=log c(b)/log c(a)
В Delphi естm фунция вычисления натурального логарифма LN, т.е
Log числа b по основанию a вычислится как
result:=ln(b)/ln(a);
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 05:30
Отвечает: sir henry
Здравствуйте, chikanok!
А к модулю MATH обратиться не судьба? :)
Вычислить логарифм по любому основанию числа Х можно функцией:
LogN(Base, X):
По основанию 2:
Log2(X);
По основанию 10:
Log10(X);
Там еще куча всевозможных математических функций.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 08:36
Отвечает: Ерёмин Андрей
Здравствуйте, chikanok!
Стандартная функция LN():
function Ln(X: Real): Real;
Description
In Delphi code, Ln returns the natural logarithm (Ln(e) = 1) of the real-type expression X. --------- Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 13:09
Вопрос № 28.385
Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и его расширенее. Или какой метод лучше использовать. Заранее благодарна.
Отвечает: Rusland
Здравствуйте, Шишлянникова Анисия Николаевна!
Перед добавлением в Memo используйте функцию ExtractFileName(FullFilePath). Удачи
--------- Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 27.10.2005, 11:20
Отвечает: Werewolf
Здравствуйте, Шишлянникова Анисия Николаевна!
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to (Memo1.Lines.count-1) do
Memo1.Lines[i]:=ExtractFileName(Memo1.Lines[i]);
end;
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 11:23
Например:
Memo1.Lines.Add(ExtractFileName(OpenDialog1.FileName));
--------- Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 27.10.2005, 11:25
Отвечает: Jadd
Здравствуйте, Шишлянникова Анисия Николаевна!
функция ExtractFileName уже делает то, что Вам нужно.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 27.10.2005, 11:35
Отвечает: sir henry
Здравствуйте, Шишлянникова Анисия Николаевна!
Вы хотите удалить файл, имя которого прописано в мемо или хотите усечь строку из мемо, чтобы осталось только название файла?
Опишу втрое, если ошибся, то уточните, что нужно.
Для этого нужно использовать функцию ExtractFileName().
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 12:30
Отвечает: Schmak
Здравствуйте, Шишлянникова Анисия Николаевна!
Для получения короткого имени файла есть функция ExtractFileName(). Пример:
Memo1.Lines.Add(ExtractFileName(OpenDialog1.FileName));
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 16:11
Вопрос № 28.386
Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и его расширенее. Или какой метод лучше использовать. Заранее благодарна.
Я уточню я использую не Lines, а Memo1.text
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 11:41
Отвечает: sir henry
Здравствуйте, Шишлянникова Анисия Николаевна!
Зделайте так:
Memo1.Text:=ExtractFileName(OpenDialog1.FileName);
Непонятно только зачем использовать именно Мемо? Не лучше ли сразу в запросе использовать OpenDialog1.FileName?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 12:34
--------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 27.10.2005, 12:43
Отвечает: Romodos
Здравствуйте, Шишлянникова Анисия Николаевна!
Надо использовать не delete, а функцию ExtractFileName из модуля SysUtils
memo1.text:=extractfilename(memo1.Text);
--------- FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 27.10.2005, 14:03
Отвечает: Ерёмин Андрей
Здравствуйте, Шишлянникова Анисия Николаевна!
Если я правильно понял, Вам нужно из полного пути к файлу оставить только его имя. Тогда это делается так:
Memo1.Text:=ExtractFileName(Memo1.Text);
--------- Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 15:16
Отвечает: Schmak
Здравствуйте, Шишлянникова Анисия Николаевна!
Ну тогда вот так
Memo1.Text:=ExtractFileName(OpenDialog1.FileName);
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 16:11
Memo1.Text := ExtractFileName(OpenDialog1.FileName);
--------- Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 28.10.2005, 07:06
Вопрос № 28.403
Здравствуйте, уважаемые эксперты! Подскажите, пожайлуста, как в StringGrid выделить ячейку другим цветом, в зависимости от того, какое значение она имеет?
Спасибо!...
Отправлен: 27.10.2005, 15:57
Вопрос задал: Wictor (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, Куприенко Виктор Петрович!
Нужно переопределить функцию OnDrawCell и заливать Rect тем цветом, который тебе нужен.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 27.10.2005, 16:04 Оценка за ответ: 4
Отвечает: Werewolf
Здравствуйте, Куприенко Виктор Петрович!
Примерно следующий обработчик OnDrawCell:
Приложение:
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 16:11 Оценка за ответ: 5 Комментарий оценки: Спасибо!...
Отвечает: sir henry
Здравствуйте, Куприенко Виктор Петрович!
В событии OnDrawCell можно определять цвет текста и фона, по другому никак.
StringGrid1.Canvas.Brush.Color := clGreen;
StringGrid1.Canvas.Font.Color := clWhite;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
Естественно, зависимость цвета от значения ячейки Вы будете определять сами. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 17:32 Оценка за ответ: 4
Отвечает: Ерёмин Андрей
Здравствуйте, Куприенко Виктор Петрович!
Для примера я сделал таблицу умножения 15х15, в которой ячейки, содержащие числа, которые делятся без остатка на 5, выделяются другим цветом. Программка вместе с ответом. А по технологии - нужно обрабатывать событие OnDrawCell. Только учтите, что если шрифт другого размера, то его лучше выводить в других координатах ячейки. Я вывожу в примере в (2;2), хотя это далеко не по центру.
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 17:51 Оценка за ответ: 5
Отвечает: Schmak
Здравствуйте, Куприенко Виктор Петрович!
В событии StringGrida OnDrawCell заливайте прямоугольник нужным Вам цветом, а потом вручную выводите содержимое ячейки на эран. Пример см. далее. Естественно, что условия Вы определите сами.
Приложение:
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 18:41 Оценка за ответ: 5