Последние записи
- Модуль числа |a| без условных операций на CMD
- Как копировать текст из блока в буфер обмена?
- Получение ProductKey установленной Windows
- Как парсить https сайт ?
- Смена регистра строки текста на BAT (CMD)
- Вывод разноцветного текста на BAT (CMD)
- Узнать дату окончания сертификата
- Как создать полноценный сайт на Open Server
- Получить температуру процессора на bat-файлах
- Динамические массивы в Lazarus / Delphi — индексация элементов
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
8th
Ноя
ДЕШИФРАТОР
Д. в телемеханике расшифровывают сообщения (их коды) по структурам принимаемых сигналов. Структура сигналов создаётся приданием импульсам, образующим сигналы, различных качеств — признаков. Такими признаками являются полярность, частота и порядок следования, количество, длительность и амплитуда импульсов, группировка импульсов различного качества и т.д. (см. Кодирование в телемеханике). Если, например, Д. используется в системе телеуправления, то Д. автоматически анализирует структуру принимаемых сигналов в соответствии с программой, заложенной в конструкции самого Д.; сигналы с его выходов подаются на входы исполнительных механизмов управляемых объектов. Избирательность — основное свойство Д.; она обеспечивает защиту входных цепей воспринимающих систем от посторонних сигналов, которые могут оказать ложное воздействие на систему.
В вычислительной технике Д. применяют в качестве преобразователей кода в код или кодов в эквивалентные им непрерывные величины (например, электрический ток, напряжение, угол поворота и др.). В радиотехнике Д. восстанавливает передаваемое сообщение из радиосигнала, параметры которого (амплитуда, частота, фаза) изменяются в такт с передаваемым сообщением.
Лит.: Тутевич В. Н., Основы телемеханики, М. — Л., 1967.
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
Dynamic
Позволяет методу класса быть перекрытым в классах-потомках
Function|Procedure declaration; Dynamic;
Описание:
Директива Dynamic позволяет методу класса быть перекрытым (замененным) одноименным методом в классе-потомке.
Вы можете пометить функцию или процедуру как Dynamic, если вы великодушно хотите позволить программисту создать класс, основанный на вашем классе, для замещения его функциональности.
Например, вы можете позволить базовому классу рисовать на канве белым цветом, а классу-наследнику вместо этого — рисовать картинку на канве. Таким образом, директива Dynamic позволяет коду быть расширенным и обогащенным.
За директивой Dynamic может следовать директива Abstract. Она изменяет эффект директивы Dynamic. Это означает, что текущий класс не должен реализовывать это метод — это только «заглушка» для напоминания и уверенности в том, что классы-наследники реализуют его.
Пример кода:
// ————————————————————
// 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, SysUtils;
type
// Define a base TPolygon class :
// This class is a traingle if 3 sides, square if 4 sides …
TPolygon = class
private
sideCount : Integer; // How many sides?
sideLength : Integer; // How long each side?
shapeArea : Double; // Area of the polygon
protected
procedure setArea; Dynamic; Abstract; // Must be implemented in child
property count : Integer read sideCount;
property length : Integer read sideLength;
property area : Double read shapeArea;
constructor Create(sides, length : Integer);
end;
// Define triangle and square descendents
TTriangle = class(TPolygon)
protected
procedure setArea; override; // Override the abstract method
end;
TSquare = class(TPolygon)
protected
procedure setArea; override; // Override the abstract method
end;
// Define the form class used by this unit
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
// Create the TPolygon object
constructor TPolygon.Create(sides, length : Integer);
begin
// Save the number and length of the sides
sideCount := sides;
sideLength := length;
// Set the area using the abstract setArea method :
// This call will be satisfied only by a subclass
setArea;
end;
// Implement the abstract setArea parent method for the triangle
procedure TTriangle.setArea;
begin
// Calculate and save the area of the square
shapeArea := (sideLength * sideLength) / 2;
end;
// Implement the abstract setArea parent method for the square
procedure TSquare.setArea;
begin
// Calculate and save the area of the square
shapeArea := sideLength * sideLength;
end;
// Main line code
procedure TForm1.FormCreate(Sender: TObject);
var
triangle : TTriangle;
square : TSquare;
begin
// Create a triangle and a square
triangle := TTriangle.Create(3, 10);
square := TSquare.Create(4, 10);
// Show the areas of our polygons:
ShowMessageFmt(‘Triangle area = %f’,[triangle.area]);
ShowMessageFmt(‘Square area = %f’,[square.area]);
end;
end.
Результат выполнения:
Square area = 100.0
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
ДОБАВИТЬ ЗАПИСИ В ТЕКСТОВЫЙ ФАЙЛ 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
Ноя
ВВЕДЕНИЕ
Фракталы — это геометрические объекты с удивительными свойствами: любая часть фрактала содержит его уменьшенное изображение. То есть, сколько фрактал не увеличивай, из любой его части на вас будет смотреть его маленькая копия. Эти удивительные фигуры стали широко известными в 70-х годах прошлого века благодаря Бенуа Мандельброту, работавшему тогда математическим аналитиком в фирме IBM. Он придумал и само слово «фрактал», которое образовано от латинского fractus — «дробный». В математике эти необычные объекты встречались то здесь, то там с конца девятнадцатого века. Но именно Мандельброту удалось собрать эти разрозненные сведения, увидеть общее в многообразии и указать на важность этого открытия.
Кроме самоподобия, фракталы замечательны еще и тем, многие из них удивительно похожи на то, что мы встречаем в природе. Снежинку, морского конька, ветви деревьев, разряд молнии и горные массивы можно нарисовать, используя фракталы. Поэтому многие современные ученые говорят о том, что природа имеет свойство фрактальности.
Цель данной научно-практической работы состоит в поиске способа легкого представления сложных неевклидовых объектов, образы которых весьма похожи на природные.
* — Б. Мандельброт «Фрактальная геометрия природы».
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
КОРРЕКТИРУЮЩИЕ КОДЫ
В качестве примера рассмотрим код Хэмминга. Пусть требуется передать некоторое слово 1010. При кодировании оно будет представлено как 1011010, где 1-й, 2-й и 4-й разряды проверочные (слева направо 101), а остальные информационные. Если при передаче произошла ошибка, например в 3-м разряде вместо 1 получен 0, то при декодировании проверочные разряды примут значения: 1-й (младший) — 1, 2-й — 1, 4-й — 0 (т. е. 011). Несовпадение кодовых комбинаций проверочных разрядов не только сигнализирует о наличии ошибки, но и указывает номер искажённого разряда (011 — 3 в двоичном коде).
Корректирующая и обнаруживающая способность кодов зависит от кодового расстояния d между словами, численно равного минимальному числу ошибок, которое может превратить одно слово в другое. Например, имеется кодовая комбинация: 0111100; 0100101; 0010110. Первая группа (слово) отличается от второй в трёх разрядах, вторая от третьей — в четырёх разрядах, первая от третьей — в трёх разрядах. Минимальное расстояние d между этими словами равно 3. Если в первом слове произойдёт 3 ошибки, то оно может превратиться либо во второе, либо в третье слово; при декодировании такая ошибка не будет обнаружена. Максимальное число ошибок, которое в данном случае может быть обнаружено, равно 2. Если в первом слове произошла ошибка во втором разряде, то полученное слово отличается от второго в четырёх разрядах, от третьего — в двух разрядах, от первого — в одном разряде. Согласно максимального правдоподобия методу, при декодировании делается вывод, что, вероятнее всего, передавалось первое слово. Для правильного декодирования нео бходимо, чтобы максимальное число ошибок в передаваемом слове превращало его в слово, отличающееся от исходного в наименьшем числе разрядов. Чтобы исправлять все комбинации из t ошибок, необходимо и достаточно, чтобы d ? 2t+ 1.
Ошибки в передаваемых словах могут возникать вследствие либо независимых искажений разрядов (в этом случае применяют, например, коды типа кода Хэмминга), либо искажений группы рядом стоящих разрядов (для таких случаев разработаны коды, исправляющие одиночные пачки ошибок, и коды, исправляющие более одной пачки ошибок); для обнаружения ошибок в процессе вычислений на ЭВМ разработаны так называемые арифметические коды.
Лит.: Питерсон У., Коды, исправляющие ошибки, пер. с англ., М., 1964.
Г. Н. Оныкий.
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
ЗАПЯТАЯ ФИКСИРОВАННАЯ
А. В. Гусев.
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
МОНИТОР
Для начала узнаем, с какой видеокартой мы работаем:
procedure TForm1.Button1Click(Sender: TObject);
var
lpDisplayDevice: TDisplayDevice;
dwFlags: DWORD;
cc: DWORD;
begin
Memo1.Clear;
lpDisplayDevice.cb := sizeof(lpDisplayDevice);
dwFlags := 0;
cc := 0;
while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do
begin
Inc(cc);
Memo1.lines.add(lpDisplayDevice.DeviceString);
end;
end;
Теперь разместим на форме ListBox и Button. В обработчике создания формы пишем:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
DevMode: TDevMode;
begin
i:=0;
while EnumDisplaySettings(nil,i,DevMode) do
begin
with Devmode do
ListBox1.Items.Add(Format(‘%dx%d %d Colors’,
[dmPelsWidth,dmPelsHeight,1 shl dmBitsperPel]));
Inc(i);
end;
end;
Вы увидите все возможные комбинации разрешений и цветов, которые поддерживает дисплей. Теперь пишем в нажатии на кнопку:
procedure TForm1.Button1Click(Sender: TObject);
var
DevMode: TDeviceMode;
liRetValue: Longint;
begin
if EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode) then
liRetValue := ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY);
SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
end;
function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
Параметры:
- lpDevMode Структура с описанием видеорежима, на который мы хотим переключиться.
- dwFlags Определяет как будет изменен видеорежим.
- 0 — Немедленное изменение видеорежима. Установка данного флага возвращает в видеорежим по умолчанию, установленному в реестре, если он был изменен с применением флага CDS_FULLSCREEN, при этом первый параметр функции должен быть nil и флаги равны 0.
- CDS_UPDATEREGISTRY — Видеорежим будет изменен немедленно и информация записана в реестр в пользовательский профиль.
- CDS_TEST — Запрос теста видеорежима средствами Windows
- CDS_FULLSCREEN — Установка видеорежима временна.
- CDS_GLOBAL — Видеорежим будет изменен для всех пользователей данной машины. Иначе видеорежим меняется только для текущего пользователя. Используется вместе с флагом CDS_UPDATEREGISTRY.
- CDS_SET_PRIMARY — Видеорежим становится первичным.
- CDS_RESET — Параметры видеорежима будут изменены, даже если совпадают с текущими.
- CDS_NORESET — Изменения будут записаны в реестр, но не вступят в силу. Используется с флагом CDS_UPDATEREGISTRY
- Возвращаемое значение:
- DISP_CHANGE_SUCCESSFUL Изменения прошли успешно.
- DISP_CHANGE_RESTART Необходима перезагрузка для вступления изменений в силу
- DISP_CHANGE_BADFLAGS Передан неверный набор флагов
- DISP_CHANGE_BADPARAM Неверные параметры.
- DISP_CHANGE_FAILED Драйвер видеоустройства не смог установить режим
- DISP_CHANGE_BADMODE Видеорежим не поддерживается
- DISP_CHANGE_NOTUPDATED Windows NT/2000: Ошибка записи в реестр
После этого Вам достаточно выбрать в ListBox нужную комбинацию и изменить разрешение нажатием на Button.
Внимание:
- Не рекомендуется устанавливать значение видео-режима, который не присутствует в списке доступных. Это может привести к мерцанию экрана либо вообще к исчезновению изображения.
- Многие адаптеры требуют перезагрузку компьютера при смене разрешения.
- SendMessage используется для оповещения всех окна о смене видеорежима.
При изменениях видеорежима генерируется сообщение WM_DISPLAYCHANGE. Необходимо создать обработчик данного сообщения в вашем приложении.
private
procedure WMDisplayChange(var message:TMessage); message WM_DISPLAYCHANGE;
//…
procedure TForm1.WMDisplayChange(var message: TMessage);
begin
ShowMessage(‘Какие-то параметры дисплея изменили!’);
inherited;
end;
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
1st
Сен
КОД
Код (франц. code, от лат. codex — свод законов), система условных знаков (символов) для передачи, обработки и хранения (запоминания) различной информации. Конечная последовательность кодовых знаков называется словом. Число различных символов, которые используются в словах данного К., называется его основанием; например, К. с основанием 2 называется двоичным. Если все слова имеют одинаковую длину, или количество элементов, — n, то это равномерный n-значный К. (см. Код телеграфный). Если слова имеют переменную длину, то К. называется неравномерным, например Морзе код. К. называется полным, когда к нему без нарушения его различимости нельзя добавить ни одной новой кодовой комбинации. Полный равномерный n-значный К. содержит тn слов, где т — основание кода. К., содержащий кодовые комбинации, служащие для отделения одного сообщения от другого, называется К. с разделительными знаками; К., в котором все без исключения кодовые комбинации символов служат лишь для обозначе ния элементов сообщения, является К. без разделительных знаков. Кодовые комбинации, являющиеся разделительными знаками, могут конструироваться либо из специальных кодовых символов, либо из тех же кодовых символов, которые образуют кодовые комбинации, соответствующие определенным элементам сообщения. Иногда бывает удобно разбить элементы сообщения на несколько групп и для каждой из этих групп построить свой К.; сигнал о переходе от одного К. к другому подается специальными кодовыми комбинациями (адресами). Совокупность К. для каждой из групп элементов сообщения вместе с адресными кодовыми комбинациями называется многоадресным, или многопрограммным К.
Для записи К. чаще всего используют либо цифры и числа (0, 1, 2,… 57, 9276 и т.п.), либо знаки, например + (плюс), — (минус), • (точка), — (тире) и т.д. В технике каждый кодовый знак является условным обозначением некоторого элементарного сигнала, обладающего какими-либо физическими параметрами (сигнальными признаками), которые могут принимать несколько различных значений. Для электрических сигналов такими признаками могут служить амплитуда тока или напряжения, полярность или длительность электрических импульсов (посылок), периодичность их следования и др.
К., применяемые в телемеханике, в системах связи и автоматического управления, в вычислительной технике, представляют собой набор комбинаций из электрических импульсов и пауз между ними, что эквивалентно изображению значений кодируемой величины в виде двоичных чисел — наборов, состоящих из 0 и 1 (см. Код в телемеханике, Код в ЦВМ). Количество импульсов в комбинации или разрядов в эквивалентном двоичном числе определяет значность К.
Выбор К. определяется условиями передачи, обработки или хранения информации и связан главным образом с наиболее эффективным использованием каналов связи, обеспечением необходимой помехоустойчивости передачи и т.п. (см. Кодирование). С целью улучшения помехоустойчивости К. усложняются: к так называемым информационным знакам добавляются дополнительные — контрольные (проверочные). По такому принципу строятся К. обнаружения и исправления ошибок (см. Корректирующие коды).
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
Облако меток
ассемблер timer TBitMap select 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 (Компьютерное железо)


