Вопрос № 59168: Здравстуйте! Не могли бы вы мне помочь потомучто я уже не знаю куда обратиться. Знаю что вопросов на данную тематику было много, но я просмотрел много ответов и не нашел то что мне необходимо.
Дело в том что я не понимаю каким образом можно произ...Вопрос № 59229: Подскажите как правильно работать в dll с функциями возвращающие значение Widestring....Вопрос № 59245: Здравствуйте УВАЖАЕМЫЕ ЭКСПЕРТЫ!!! Нужна Ваша помощь! Не знаете ли вы сайты, электронные уроки, где объясняют, как создать программу «Тест» на Делфи. Или может какой-нибудь простейший исходник где-нибудь есть, чтобы в нем можно было разобраться! Пожа...Вопрос № 59259: Где можно достать компилятор C++ Builder или Delphi для windows mobile, или как перевести уже написанную программу на windows mobile...Вопрос № 59269: Hello всем.Нуждаюсь в помощи.Только силно не ругайте за тупые вопросы.Спасибо:
1)Как узнать в Delphi,есть ли в файле,объём которого я хочу узнать,символы Unicode?
Далее пойдут отрывки из прог и вопросы к ним:
2)
Funct...
Вопрос № 59.168
Здравстуйте! Не могли бы вы мне помочь потомучто я уже не знаю куда обратиться. Знаю что вопросов на данную тематику было много, но я просмотрел много ответов и не нашел то что мне необходимо.
Дело в том что я не понимаю каким образом можно производить операции над матрицами (определитель, решение САУ и т.п.) Для начала я хочу найти определитель (см. код в прилож.) но не получаеться..... Код я взял на одном из сайтов и подкоректировал немного... Может у кого нибудь есть докментация по решению матриц с помощью делфи или исходники. Помогите чем можете. Заранее благодарен!
Приложение:
Отправлен: 16.10.2006, 23:10
Вопрос задал: Djoin (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Проходящий Мимо
Здравствуйте, Djoin!
Для начала, Вам нужно обратить свое внимание на математический апарат решения данных задач, например "Справочник по высшей матиматике" Сигорского или аналогичные. Далее, желательно ознакомится с численными методами решения задач с матрицами, например Кормен "Алгоритмы. Постоение и анализ". Ну и тогда можно приступать к разработке собственных програм или анализу чужих. Дополнительно могу выслать модуль Matrix.pas, в котором реализованы многие функции для работы с матрицами. В приложении перечень
функций этого модуля.
Приложение:
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 8-ой класс)
Ответ отправлен: 17.10.2006, 09:41
Отвечает: sir henry
Здравствуйте, Djoin!
На что Вам прежде всего следует обратить внимание при работе с матрицами, Вам уже сказал предыдущий эксперт. Добавлю лишь то, что это не зависит от языка программирования, т.к. язык - это всего лишь инструмент, который на основе Вашего знания позволяет получить како-либо результат. Убежден, что как только Вы сможете решить свою задачу (например, найти тот же определитель), то сразу же и поймете, как это сделать с помощью Дельфи.
Загляните сюда:
http://alglib.sources.ru/matrixops/
Здесь Вы найдете алгоритмы решений задач с матрицами и примеры на C#, C++, Delphi.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 17.10.2006, 10:07
Вопрос № 59.229
Подскажите как правильно работать в dll с функциями возвращающие значение Widestring.
Отвечает: Маренич Владимир
Здравствуйте, Negruzzi Cristian!
Два варианта:
1. Подключать к DLL-ке и приложениям, которые ее используют в разделе USES модуль ShareMem. Причем она должна в секции USES стоять первой в списке. При этом нужно с exe-шником "таскать" DLL-ку BORLNDMM.DLL
2. В процедурах и функциях DLL-ки в параметрах использовать PWideChar и потом преобразовывать к WideString. При вызове процедуры тоже выполнять преобразование из WideString в PWideChar.
Приложение:
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 17.10.2006, 15:00
Function SummW(c,d: integer): widestring; stdcall; external 'lib.dll';
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
ResSummW: widestring;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ResSummW:=SummW(StrToInt(Edit1.Text),StrToInt(Edit2.Text));
Label1.Caption:=ResSummW;
end;
end.
Ответ отправил: Gladiator (статус: 3-ий класс)
Ответ отправлен: 17.10.2006, 15:20
Вопрос № 59.245
Здравствуйте УВАЖАЕМЫЕ ЭКСПЕРТЫ!!! Нужна Ваша помощь! Не знаете ли вы сайты, электронные уроки, где объясняют, как создать программу «Тест» на Делфи. Или может какой-нибудь простейший исходник где-нибудь есть, чтобы в нем можно было разобраться! Пожалуйста, подскажите! Заранее ОГРОМНОЕ СПАСИБО!!!!!!!!!!:-)
Отправлен: 17.10.2006, 16:11
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Patriotix-N
Здравствуйте, Алена!
Архив статей
http://www.delphiworld.narod.ru/
Название говорит само за себя:
http://www.ishodniki.ru/
http://www.delphisources.ru/pages/sources.html
На сайте есть исходник какого-то теста:
http://www.programmersclub.ru/labplay
--------- Краткость - сестра таланта.
Ответ отправил: Patriotix-N (статус: 2-ой класс)
Ответ отправлен: 17.10.2006, 22:00 Оценка за ответ: 5
Вопрос № 59.259
Где можно достать компилятор C++ Builder или Delphi для windows mobile, или как перевести уже написанную программу на windows mobile
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, George soselia!
В Visual Studio 8 точно есть средства для разработки под платформу Windows Mobile. Я что-то подобное слышал и про 6-ую версию. Компиляторов C++ Builder и Delphi для windows mobile не существует. Можно еще писать на J2ME, но это уже совсем другой язык и скорее для смартфонов на ОС, отличных от Windows. Впрочем, если вам все равно Delphi или C++ - может, и Java пойдет? ^^
--------- Не узнаешь - не попробуешь.
Hello всем.Нуждаюсь в помощи.Только силно не ругайте за тупые вопросы.Спасибо:
1)Как узнать в Delphi,есть ли в файле,объём которого я хочу узнать,символы Unicode?
Далее пойдут отрывки из прог и вопросы к ним:
2)
Function AttrStr(Attr:integer):boolean;
begin
Result:='';
if (FILE_ATTRIBUTE_DIRECTORY and Attr) > 0 then Result := Result + '';
if (FILE_ATTRIBUTE_ARCHIVE and Attr) > 0 then Result := Result + 'A';
if (FILE_ATTRIBUTE_READONLY and Attr) > 0 then Result := Result + 'R';
if (FILE_ATTRIBUTE_HIDDEN and Attr) > 0 then Result := Result + 'H';
if (FILE_ATTRIBUTE_SYSTEM and Attr) > 0 then Result := Result + 'S';
Параметры ,начинающие со слова File_... в этом примере-где они описаны(в каком модуле).В листинге нет объявления типа файл!
3)procedure TForm1.Button1Click(Sender: TObject);
Var
f:tFileStream;
Buf:string[11];// Я убираю [11] и ошибка!
begin //Но в этом случае создаётся строка из 255 символов?
f:=TFileStream.Create('c:example.txt',fmOpenReadWrite);//asd.txt для примера!
f.Seek(15,soFromCurrent);
f.Read(buf,10);
Edit1.Text:=buf;
f.Free;
end;
Как вы поняли,прога пытается засунуть в Edit прочитанные из файла 10 символов с начала!Вопросы я буду приводить в комментариях!
4)procedure TForm1.Button1Click(Sender: TObject);
Var
Date:TDateTime;
begin
Try
Date:=StrToDate(Edit1.Text);
//Когда я ввожу в Edit1 буквы ,проверить на ошибки не получается.WHY?
Except;
Label1.Caption:='Вводить только числа!';
End;
Edit2.Text:=DatetoStr(Date);
end;
Такая же ситуация,когда я хочу обойти деление на 0!
5)procedure TForm1.Button1Click(Sender: TObject);
Var
r:array[0..3,0..4] of integer ;
i,j:integer;
begin
For i:=0 to high(r) do
begin
for j:=0 to high(r) do //Не удаётся вывести массив!
Listbox1.Items.Add( IntToStr(r[i,j])); //В чём же ошибка?
end;
end;
6)procedure TForm1.Button1Click(Sender: TObject);
Var
i:integer;
begin
Label2.Caption:='Проверяю...'; //Несмотря на то,что эта строка идёт за
Sleep(200); // строкой с циклом,цикл выполняется первым!!!
for i:=0 to 20 do begin //Как исправить?
progressbar1.Position:=round(i/20*100);
Sleep(100);
end;
if edit1.Text='password' then edit2.Text:='Код верный'
else
Edit2.Text:='Код неверный';
Sleep(600);
progressbar1.Position:=0;
end;
7)Что это за обявление :
Переменная:set of 1..N ?
8)Какую книгу посоветуете для логики (в кодинге очень нужно) ?
Отправлен: 17.10.2006, 20:04
Вопрос задал: Xtreme (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Monah
Здравствуйте, Xtreme!
Отвечаю по пунктам.
1 - незнаю.
2 - Поднеси мышку к обявлению переменной, константы, типа, класса и нажми Ctrl название превратится в гиперссылку по которой можно перейти к месту где оно объявлено.
3 - Нет String резервирует только указатель на строку. ShortString 255 байт. А длинна String ограничена разрядностью шины процессора и доступной памятью.
Можно сделать так SetLength(s, 10); если использовать string
4 - Попробуй вместо Edit1 использовать MaskEdit. Можно задать любую маску, есть готовые шаблоны.
5 - Ошибка скорее всего в том что массив двумерный, и я предпологаю, что High возвращает только по первой размерности. Как боротся не знаю.
6 - все правильно, просто приоритет отрисовки ниже чам цикла. Не успевает отрисоваться текст. Вставь перед sleep или вместо него application.processmessage;
И внутри длинных циклов тоже не помешает такая конструкция, иначе приложение перестанет отзыватся.
7 - это множество. Означает что переменная может принимать любые значения из диапазона например "set of 1..10" значит переменная может содержать любые комбинации чисел от 1 до 10, но каждое значение только один раз.
8 - по логике ни чего не встречал.
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 17.10.2006, 20:35
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Xtreme!
2) Атрибуты файла - это свойство от операционной системы, а не от компилятора. Они есть у любого файла! Кстати, для их просмотра и изменения существует консольная утилита attr (входящая в состав, например, WinXP Prof), хотя то же самое можно сделать и через визуальный интерфейс.
5) Бороться так: брать high(r[i])
Но, возможно, придется объявить двумерный массив так: r:array[0..3] of array[0..4] of integer;
и к элементам доступаться так: r[i][j]
6) Внутри длинных циклов слишком часто вызывать application.processmessages тоже бывает накладно
7) Множество не может быть размером больше, чем 256 и состоять только из перечислимых типов. Об этом и многом другом написано в справке. Правда, на англ. :-)
8) Из логики для программирования надо знать не так уж и много
Правила де Моргана:
(not x) and (not y) = not (x or y)
(not x) or (not y) = not (x and y)
двойное отрицание (по-моему, называется, метод исключения третьего)
not(not x) = x
Законы поглощения:
x and true = x
x and false = false
x or true = true
x or false = x
Вот, практически, и все.
--------- Не узнаешь - не попробуешь.