Последние записи
- Склеить несколько файлов в один
- Windows 10 сменить администратора
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
8th
Ноя
ЗАПОЛНЕНИЕ ОДНОМЕРНОГО МАССИВА; ВЫВОД ОДНОМЕРНОГО МАССИВА НА ЭКРАН; ПОИСК СУММЫ ЧЕТНЫХ ЭЛЕМЕНТОВ ОДНОМЕРНОГО МАССИВА
1) реализовывает в виде подпрограмм:
— заполнение одномерного массива;
— вывод одномерного массива на экран;
— поиск суммы четных элементов одномерного массива.
2) вычисляет y=|t|+|r|+|z|, где t, r, z — сумма четных элементов одномерных массивов А, В, С соответственно.
Решение
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
2. ПРИМЕРЫ ПОСТРОЕНИЯ ФРАКТАЛЬНЫХ МНОЖЕСТВ. КЛАССИФИКАЦИЯ ФРАКТАЛОВ.
Спрашивается, чему равна фрактальная размерность множества Кантора? Применим для ее вычисления формулу (*). Чтобы подсчитать по формуле (*), нужно определить e и N(e). На первом этапе построения множества Кантора отрезок единичной длины можно покрыть одним отрезком длиной в, т.е. e = 1 и N(e) = 1.
В 1904 г. немецкий математик Хельга фон Кох построила кривую, которая в настоящее время носит ее имя (кривая Кох). Построение начинается с единичного отрезка прямой. Единичный отрезок прямой делится на 3 равные части. Средняя часть удаляется, а на месте средней части строится равносторонний треугольник. В итоге получается ломаная линия, состоящая из 4 отрезков, каждый из которых равен 1/3 .
Далее, каждый из 4 отрезков снова делится на 3 равные части, на отрезках, расположенных в середине, строятся равносторонние треугольники, и средние части отрезков удаляются. Эта процедура повторяется еще и еще раз. В итоге линия становится очень изрезанной. Если этот процесс повторять бесконечно долго (т. е. перейти к пределу), то получаем непрерывную, нигде не дифференцируемую кривую, и эта непрерывная кривая имеет ненулевую «площадь». Чтобы в этом убедиться, подсчитаем фрактальную размерность кривой Кох. На первом этапе мы имеем один отрезок длиной 1, который можно покрыть одним отрезком длиной, равной 1, т. е. e. = 1 и N(e) = 1. На втором этапе мы имеем 4 отрезка, каждый длиной, равной 1/3 поэтому для покрытия этих отрезков нужны 4 отрезка длиной 1/3 т. е. e=1/3 и N(e)=4.
Таким образом, мы впервые сталкиваемся с фрактальным множеством. Привычная (или топологическая) размерность канторовой пыли равна 0, а вот фрактальная, оказывается, нулю не равна — она строго больше; это и есть, по определению Мандельброта, свойство фрактала.
Как и все в науке, фракталы принято делить на классы или виды. Каждый вид имеет свое особое происхождение. Возьмем, например, геометрические фракталы. Один из самых известных примеров этого вида — это коврик Серпинского. Построение его заключается в следующем: вы берете равносторонний треугольник и в середине вырезаете в нем дыру в виде такого же треугольника, только перевернутого и в четыре раза меньшего. Теперь в каждом из углов у нас появилось по маленькому треугольнику. Повторяем с ними то же самое: в середине каждого вырезаем маленький треугольник. И так далее, пока не устанете, или пока уменьшающиеся треугольники не сможете отличить от точки.
Примерно также получаются все остальные геометрические фракталы: вы берете какую-то фигуру и начинаете применять к ней, а потом к ее частям, определенное геометрическое построение достаточно много раз. Строго говоря, эту процедуру надо повторять бесконечное количество раз. Но так как возможности нашего зрения ограничены, да и жизнь не бесконечна, то можно остановиться на построении самых мелких видимых деталей.
Фракталы следующего вида называются алгебраическими. Один из методов построения алгебраических фракталов состоит в следующем. Вы берете формулу, подставляете в нее число и получаете результат. Потом подставляете в эту же формулу результат и получаете следующее число. Повторяем эту процедуру много раз. В математике это называется итерационный процесс. В результате получается набор чисел, которые являются точками фрактала. Удивительно то, что иногда эти формулы до смешного простые — вы их можете найти в любом школьном учебнике алгебры 6-го класса. А вот фигуры получаются поразительной сложности и красоты. Таким образом рисуют, например, фрактал папоротник.
Еще одним распространенным видом являются стохастические фракталы. Их получают, меняя в итерационном процессе некоторые параметры случайным образом. Этим способом можно нарисовать такие природные объекты, как изрезанные береговые линии, рельеф местности, облака, волны на воде многое другое. Поэтому фрактальные модели сегодня широко применяют в компьютерных играх, создавая в них обстановку, которую уже трудно отличить от реальности.
Мандельброт исследовал преобразование комплексной плоскости, заданное элементарной формулой: Z?Z2+C. Впрочем, преобразование, исследованное Мандельбротом, можно представить просто как преобразование плоскости. Мандельброт рассматривал траектории точек, которые получаются при этом преобразовании, и изучал зависимость получающейся картины от параметра С. Казалось бы, ничего интересного ожидать не приходилось: настолько простым казалось преобразование. Фиксируя параметр С, Мандельброт попытался установить те области на плоскости, выходя из которых, точки не «убегают» на бесконечность, а образованная при итерационном процессе последовательность остается в ограниченной окрестности. Оказалось, что значения таких параметров С образуют связное множество с удивительно причудливой границей, и форма основной части множества повторяется и повторяется в разных масштабах. Это множество и было названо множеством Мандельброта.
Мандельброт опубликовал исследование найденного им множества в конце 1980 года. Математики Р. Брукс и Дж. Мателски выпустили свою работу с сообщением об этом множестве в 1978 году. Поначалу Брукс и Мателски не придавали особого значения своей находке, однако впоследствии заявили, что являются, по меньшей мере, соавторами открытия. Дж. Хаббард сообщил, что наблюдал множество Мандельброта на дисплее своего компьютера в 1976 году. Кроме того, Хаббард, Мателски и Брукс предложили считать истинным открывателем множества французского математика Пьера Фату, описавшего его еще в 1906 году. Однако во всех этих случаях приходится говорить даже не о корнях фрактальной геометрии, а лишь о ее зернах — причем еще не проросших; ибо «авторы» не смогли оценить и понять смысл того, что они нашли. Сталкивавшиеся с множеством Мандельброта ученые считали свои находки частным случаем, почти случайностью, и не увидели совершенно новой области знаний и исследований. Не было озарения, не было выхода за конкретную проблему. Поэтому первооткрывателем множества Мандельброта мы, без сомнения, можем считать самого Б. Мандельброта. Здесь стоит обратить внимание на любопытный факт: Хаббард именно наблюдал множество Мандельброта; не вычислил, не построил — а видел его. Точно так же, как увидел его и Мандельброт. Видели они одно и то же. Это настолько похоже на открытия в естественных науках, что можно утверждать: фракталы были открыты экспериментально. В отличие от своих коллег, Мандельброт почти знал, что он ищет, — но совершенно не знал, что именно он найдет. Когда в своих воспоминаниях Мандельброт говорит о новеньком компьютере Vax, с которым ему посчастливилось работать, о плохих дисплеях и принтере со слабым разрешением, не позволившим ему сразу видеть свое множество, он говорит о них так же, как физик об экспериментальной установке, создание и применение которой привело к открытию.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
Constructor
Определяет метод, используемый для создания объекта из класса
- type Class declaration
…
Constructor Name; {Overload;}
…
end; - type Class declaration
…
Constructor Name(Arguments); {Overload;}
…
end;
Описание:
При создании объекта вы вызываете метод-конструктор класса, не объекта:
имяОбъекта := имяКласса.Create(параметры);
Обычно конструктор называют Create, но ограничений на имя нет. Разумней будет оставить это имя.
Объект может быть сконструирован с аргументами или без них (см. пример).
Конструкторы могут быть объявлены в секциях public или published определения класса.
Вы можете создать несколько конструкторов, но в этом случае опубликовать в секции Published можно только один из них. В случае нескольких конструкторов, после каждого из них должна стоять директива Overload, как того требует Delphi.
При реализации процедуры-конструктора, обычно называемого Create, у вас должно войти в привычку вызов конструктора предка, например
constructor Create;
inherited; >
…
Это гарантирует, что получившийся объект будет безопасно проинициализированным экземпляром родительского класса, даже если родитель — это TObject, чей конструктор ничего не делает. Код примера иллюстрирует простой вызов Inherited плюс версию, в которой конструктор родителя принимает аргументы.
Пример кода:
// ————————————————————
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
Forms, Dialogs, Classes, Controls, StdCtrls;
type
// Define a parent class, base on TObject by default
TFruit = class
public
name : string;
Constructor Create; overload; // This constructor uses defaults
Constructor Create(name : string); overload;
end;
// Define a descendant types
TApple = class(TFruit)
public
diameter : Integer;
published
Constructor Create(name : string; diameter : Integer);
end;
// The class for the form used by this unit
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
// Create a fruit object — parameterless version
constructor TFruit.Create;
begin
// Execute the parent (TObject) constructor first
inherited; // Call the parent Create method
// Now set a default fruit name
self.name := ‘Fruit’;
end;
// Create a fruit object — parameterised version
constructor TFruit.Create(name: string);
begin
// Cannot execute the parent constructor — parms differ
// And save the fruit name
self.name := name;
end;
// Create an apple object
constructor TApple.Create(name: string; diameter : Integer);
begin
// Execute the parent (TFruit) constructor first
inherited Create(name); // Call the parent method
// Now save the passed apple diameter
self.diameter := diameter;
end;
// Main line code
procedure TForm1.FormCreate(Sender: TObject);
var
fruit : TFruit;
banana : TFruit;
apple : TApple;
begin
// Create 3 different fruit objects
fruit := TFruit.Create;
banana := TFruit.Create(‘Banana’);
apple := TApple.Create(‘Pink Lady’, 12);
// See which of our objects are fruits
if fruit Is TFruit then ShowMessage(fruit.name +’ is a fruit’);
if banana Is TFruit then ShowMessage(banana.name +’ is a fruit’);
if apple Is TFruit then ShowMessage(apple.name +’ is a fruit’);
// See which objects are apples
if fruit Is TApple then ShowMessage(fruit.name +’ is an apple’);
if banana Is TApple then ShowMessage(banana.name +’ is an apple’);
if apple Is TApple then ShowMessage(apple.name +’ is an apple’);
end;
end.
Результат выполнения:
Banana is a fruit
Pink Lady is a fruit
Pink Lady is an apple
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
ВВОДИТЬ С КЛАВИАТУРЫ СВЕДЕНИЯ О ПОЛЕТАХ АВИАКОМПАНИИ: ТИП САМОЛЕТА, ПУНКТ НАЗНАЧЕНИЯ, ДАТА ВЫЛЕТА, ПРОДОЛЖИТЕЛЬНОСТЬ ПОЛЕТА
1) вводить с клавиатуры сведения о полетах авиакомпании «С ветерком»: тип самолета, пункт назначения, дата вылета, продолжительность полета (в минутах) и фамилия командира экипажа;
2) выводить на экран строки созданного текстового файла, в которых тип самолета совпадает с N;
3) формировать текстовый файл otbor.txt, записывая в него строки исходного файла airplane.txt, удовлетворяющие условию: продолжительность полета превышает W минут.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
ДОБАВИТЬ ЗАПИСИ В ТЕКСТОВЫЙ ФАЙЛ BILET.TXT О БИЛЕТАХ, КУПЛЕННЫХ НА ПОЕЗД
1) добавлять записи в текстовый файл bilet.txt о билетах, купленных на поезд. Каждая строка должна файла должна содержать: ФИО пассажира, номер вагона, тип вагона, номер места, стоимость билета;
2) просматривать содержимое всего файла в Мемо1;
3) отображать в Мемо2 информацию о пассажирах, купивших билеты в купейный/ плацкартный/ спальный вагон ( в зависимости от выбранной радиокнопки);
4) отображать в Мемо3 информацию о пассажирах, купивших билеты в вагон Z, номера мест с Р по К.
Просмотр записей производить на форме 2.
Решение
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
ASSEMBLER&WIN32. КУРС МОЛОДОГО БОЙЦА. УРОК 2.
Память системы
Ладно, приступим. Сначала я объясню, что такое смещение. Смещение это положение относительно чего-то. Смещение может быть в файле, в памяти и вообще во всём. Если говорить по-другому, то смещение это положение, адрес, местонахождение всегда измеряется в байтах. У каждой переменной есть смещение, у каждой команды есть смещение.
Немного истории.
Теперь о памяти. В ДОС и в windows 3.Х память была сегментной. Вся память делилась на сегменты по 64 КВ., и адрес (именно адрес, а не смещение) задавалась, форматом сегмент: офсет. Сегмент задаёт порядковый номер сегмента, а офсет задаёт смещение чего-либо в этом сегменте.
Память | ||||
Сегмент 1 (64kb) |
Сегмент 2 (64kb) |
Сегмент 3 (64kb) |
Сегмент 4 (64kb) |
и так далее |
Учтите, что это объяснение для 16-разрядных программ, о 32-разрядных я расскажу позже, (но не пропускайте эту часть, важно понять, что такое 32-разрядность).
Таблица выше иллюстрирует общую память, разделенную на сегменты по 64kb. Здесь максимум 65536 сегментов. Теперь возьмите один из сегментов:
Сегмент 1(64kb) | |||||
Смещение 1 | Смещение 2 | Смещение 3 | Смещение 4 | Смещение 5 | и так далее |
Вы спросите, зачем нужна эта сегментность. Всему есть разумное объяснение. Дело в том в том, что ДОС 16 битный. И регистры 16 битные. С помощью 16 бит можно адресовать только 65536 байт памяти и 65536 сегментов.
Например:
0030:4012 (всё шестнадцатиричное)
Это означает: сегмент 30, смещение 4012. Чтобы узнать, что находится в том адресе, вы сначала переходите на сегмент 30, а затем в сегменте смещаетесь на 4012. В предыдущих уроках мы узнали о сегментных и указательных регистрах. Например, сегментные регистры:
CS — Сегмент кода
DS — Сегмент данных
SS — Сегмент стека
ES — Дополнительный сегмент
FS — Универсальный сегмент
GS — Универсальный сегмент
Названия говорят о их функциях: сегмент кода (CS) содержит номер секции, где вылнен текущий код. Сегмент данных для получения данных из текущего сегмента. На стек указывает сегмент стека (SS) (подробнее о стеке я раскажу позже), ES, FS, GS — универсальные регистры и могут использоваться для любого сегмента (не в win32).
Теперь о Win32
Выделение памяти.
Если вам даётся 2ГБ памяти, то это не означает, что вы можете обратиться к любому участку памяти. Для того чтобы получить доступ к некоторому участку памяти надо сначала её зарезервировать. Грубо говоря, перед резервированием памяти, резервируемого участка памяти просто не существует (я не оговорился её просто не существует), вы как бы его создаёте и задаёте ему атрибуты доступа (полный доступ, только чтение, только запись, нет доступа). Минимальный размер выделяемой памяти — страница, равна 1000 байтам (для тех, кто не привык к шестнадцатеричной записи, это 4096 байт — 4КБ). Даже если вы захотите выделить 5 байт, то всё равно выделится 4КБ. Такой метод распределения памяти называется гранулярность. Думаю, вы не столкнётесь с тем, что вам надо будет выделять память, лично мне это ни разу не пригодилось. Это нужно при работе с файлами для того, что бы в эту память читать файл.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы – геометрия природы
Crypt – Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
8th
Если в переменной больше 4 цифр, после третей с конца ставим запятую
Есть переменная, назовем ее number, в ней находятся цифры.
Возможно ли в одну строчку сделать разделитель.
Тоесть если в переменной больше 4 цифр, после третей с конца ставим запятую. Пример 43,555 или 5,777 или 443 (читать всё…)
8th
Открыть ссылку в Internet Explorer
Здравствуйте. Такой вот вопрос. Есть адрес типа хттп://сайт.ком . Необходимо что бы этот адрес при нажатии на кнопку открывался с помощью браузера Internet Explorer.
Используя ShellExecute ссылка открывается тем браузером, который стоит по умолчанию. Мне же нужно что бы ссылка открывалась только в Internet Explorer и ни каким другим браузером. (читать всё…)
8th
При использовании ShellExecute, ругается на пробел в имени файла
У меня есть *.ехе — шник, который обрабатывает файл находящийся в некоторой директории. Если в пути к файлу имеется пробел, например: (читать всё…)
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)