Советы по 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 так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


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

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


MFC и OpenGL

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


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

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


Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin’s Creed и дальше

Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн – это симулятор мечты, набор правил, благодаря которым игра оживает. Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира! Создайте игровую механику, вызывающую эмоции и обеспечивающую разнообразие.


Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


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

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


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

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


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

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


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

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


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

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


Поделиться мнением о книге