Советы по Delphi. Версия 1.4.3 от 1.1.2001

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Авторы:

Жанр: Программирование

Циклы: не входит в цикл

Формат: Полный

Всего в книге 175 страниц. У нас нет данных о годе издания книги.

…начиная с 1001. Смотрите другие файлы…

Читать онлайн Советы по Delphi. Версия 1.4.3 от 1.1.2001


Что такое "Советы по Delphi"?

«Советы по Delphi» — коллекция ответов на нетрадиционные вопросы программирования на Delphi, нестандартных решений, хитростей и интересных идей. Для практической пользы дела приведены конкретные примеры кода, позволяющие донести идею или полностью ответить на заданный вопрос.

Автором предусматривается попытка на периодичность издания, подписаться на уведомления о выходе новых версий можно здесь. При составлении «Советов» не ставилась цель включить ВСЕ материалы, отбирались лишь самые интересные. Источником «Советов» служили многочисленные западные источники (FAQ), кропотливо отобранные и переведенные на русский язык.

Учитывая плачевное состояние наших линий, «Советы» практически не содержат графики. Весь приведенный код отформатирован таким образом, чтобы вы могли скопировать его прямо со странички в свое приложение. По этой же причине отсутствует online-версия «Советов».

Так, если Вы обладаете интересной информацией, и ее нет в «Советах», не поленитесь, пришлите ее мне. Пожалуйста не задавайте мне вопросов по электронной почте. У меня есть работа и я занятый человек. Помещайте свои вопросы в группу новостей, я попытаюсь ответить на них там.

Шлите примеры, советы, полезности, статьи и давайте ссылки на свои и не свои сайты. От вас самих зависит наполняемость советов. Авторы! Дайте вторую жизнь вашим произведениям! Присылайте статьи и переводы!

Не удивляйтесь, если в «Советах» Вы обнаружите код для Delphi1 или даже для TurboPascal'я. Сам Паскаль практически не изменился, а идеи, реализация и технология живы до сих пор. Для описания какой-либо функции можно заглянуть в электронную справку, а для поиска идеи — в «Советы».

Предупреждение

Я не отвечаю за последствия применения приведенного кода. Используйте его на свой страх и риск. Не нужно меня обвинять и слать гневные письма, если Ваш компьютер взорвется из-за какого-нибудь «Совета».

Тем не менее, если Ваш компьютер все-таки взорвался, сообщите мне пожалуйста об этом и я просмотрю код в поисках ошибки.

Алгоритмы

Преобразования

Преобразование дробной и целой части REAL-числа в два целых

Я написал программу, которая делает это. Это DOS-программа. Вы вызываете ее с десятичным числом, передаваемым в качестве параметра. После чего программка выведет 3 колонки, в первой будет находиться исходное число, две остальные будут содержать числитель и знаменатель. Вы можете преобразовать программу в функцию и применять ее в своих приложениях, но, думаю, это несложно, и с этим вы справитесь сами.

Для ее запуска достаточно в подсказке DOS набрать ее имя и число:

>CONTFRAC 3.141592654


>program contfrac;       { непрерывные дроби }

> {$N+}

>const

> order    = 20;

>var

> y, lasterr, error, x: extended;

> a: array [0..order] of longint;

> i, j, n: integer;

> op, p, q: longint;

>begin

> lasterr := 1e30;

> val(paramstr(1), y, n);

> if n <> 0 then halt;

> x := y;

> a[0] := trunc(x);

> writeln;

> writeln(a[0]:20, a[0]:14, 1:14);

> { это может вызвать резкую головную боль и галлюцинации }

> for i := 1 to order do begin

>  x := 1.0 / frac(x);

>  a[i] := trunc(x);

>  p := 1;

>  q := a[i];

>  for j := pred(i) downto 0 do begin

>   op := p;

>   p := q;

>   q := a[j] * q + op;

>  end;

>  error := abs(y – int(q) / int(p));

>  if abs(error) >= abs(lasterr) then halt;

>   writeln(a[i]:20, q:14, p:14, error:10);

>  if error < 1e-18 then halt;

>  lasterr := error;

> end;

>end.

Теперь попытаюсь объяснить мой алгоритм (он, по-моему, достаточно быстрый). Вот схема:

Допустим, мы используем число 23.56.

Берем наше натуральное число и производим целочисленное деление на 1.

23.56 div 1 = 23

Теперь вычитаем результат из числа, с которого мы начали.

23.56 – 23 = .56

Для преобразования значения в целое мы просто умножаем его на 100, и, при необходимости, приводим его к целому.

>valA := (val div 100);

>valB := (valA – val);

or

>valB := (valA – val) * 100;


>val = 23.56

>ValA = 23

>ValB = .56 or 56

Есть ли функция, выполняющая пpеобpазование пеpеменной real в integer?

Nomadic советует:

Hа самом деле есть две функции — Round и Trunc (округление и отсечение дробной части соответственно).

Кстати, функции эти были уже в самых ранних версиях Паскаля. Так что мой совет — изучите Паскаль — полезно.

Hy, если yж дело идет к изyчению списка фyнкций :), то yпомянy еще Ceil и Floor. Unit Math;

Кстати, втоpая из них мне очень пpигодилась для полyчения экспоненты числа. Имеется в видy экспонента: X=1E 13 [001193]

Почему непpавильно pаботает функция StrToFloat?

Nomadic советует:

Пишу даже прямо StrToFloat('32.34'), к примеру, получаю исключение «'32.34' is not valid float». Если пишу число без десятичной точки, то все ОК. А какой у тебя DecimalSeparator? В Russian settings почему-то по умолчанию считается, что разделитеь дроби – запятая. Пеpеустанови пpи запуске пpогpаммы

>DecimalSeparator := '.';

Или пользуйся этой функцией так:

>StrToFloat('32,24');

Число строкой X

Сергей AKA WildSery прислал свой вариант:

Привожу мой вариант, написал для своего приложения за 20 минут. В силу специфики приложения не утруждал себя прописью полностью "рублей" и "копеек", а ограничился "руб." и "коп.", а также не было необходимости в знаке числа, по это все добавляется буквально 3-4 строками.


С этой книгой читают
Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Обработка событий в С++

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


Симуляция частичной специализации
Автор: П Кузнецов

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


DirectX 8. Начинаем работу с DirectX Graphics

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


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


Графика DirectX в Delphi

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


Невинно осужденный
Автор: Ник Картер

Ник Картер (настоящее имя – Джон Р. Корнелл) – создатель популярнейшего одноименного героя Ника Картера, который практически не знаком российскому читателю.Ник, потрясающий по активности и изобретательности герой, стал любимцем миллионов читателей не только в США, но и во всем мире.Многомиллионные тиражи и более 1200 созданных, и победно шествующих по западным страницам комиксов, лучшее тому подтверждение.Если вы любите динамичный, приключенческий детективный жанр – Ник Картер для вас.


Страшная ночь в Гранд-отеле
Автор: Ник Картер

Ник Картер (настоящее имя – Джон Р. Корнелл) – создатель популярнейшего одноименного героя Ника Картера, который практически не знаком российскому читателю.Ник, потрясающий по активности и изобретательности герой, стал любимцем миллионов читателей не только в США, но и во всем мире.Многомиллионные тиражи и более 1200 созданных, и победно шествующих по западным страницам комиксов, лучшее тому подтверждение.Если вы любите динамичный, приключенческий детективный жанр – Ник Картер для вас.


Мозаика любви

Когда-то Толя и Таня были восторженными старшеклассниками, влюбленными друг в друга, да так и не посмевшими признаться в этой любви.Теперь, много лет спустя, Анатолий Лобанов и Татьяна Луговская — взрослые, успешные люди, состоявшиеся во всем… кроме личной жизни.Их юношеская, влюбленность давно уже осталась в прошлом, и о ней невозможно вспоминать без смеха?Возможно…Но почему же тогда случайная встреча на вечере выпускников пробуждает в Анатолии и Татьяне НЕ ТОЛЬКО ВОСПОМИНАНИЯ?Неужели существует на свете Любовь, которую не в силах убить даже долгие годы разлуки?!.


Дельфины
Жанр: Зоология

Книга Э. Олперса удачно дополняет известные труды С. Е. Клейненберга, В. М. Бельковича, А. А. Яблокова, А. Г. Томилина и Дж. Лилли, посвященные дельфинам. Э. Олперс описывает особенности биологического строения этих морских млекопитающих; в живой и увлекательной форме рассказывает о наблюдениях над дельфинами в океанариумах, о различных сторонах их жизни, способности к эхолокации, форме мышления, так называемом интеллекте дельфинов, который ставит их в ряд высших животных. В книге изложены легенды и рассказы о дельфинах, дошедшие до нас в произведениях античных писателей, свидетельствующие о возникшем в глубокой древности обоюдном интересе людей и дельфинов.


Другие книги автора
Советы по Delphi. Версия 1.0.6

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