Найдено 158 результатов

SAK
25.03.2017 00:34:31
Форум: Free Pascal Compiler
Тема: fpc-3.0.0 - запилили баг в арифметику
Ответы: 161
Просмотры: 179330

Re: fpc-3.0.0 - запилили баг в арифметику


В общем выяснили: баг в арифметику - заложили производители процессоров и разработчики FPC - не виноваты . Дальше флуд можно не продолжать.
Никто никуда никакого бага не вносил, это естественная потеря точности при переводе из одной системы счисления (десятичной) в другую (двоичную) и наоборот ...
SAK
09.12.2016 16:45:31
Форум: Free Pascal Compiler
Тема: Проблема передачи кода из halt в переменную %ERRORLEVEL%
Ответы: 10
Просмотры: 11437

Re: Проблема передачи кода из halt в переменную %ERRORLEVEL%

Перечисленные примеры не подходят для предложенной простейшей программы. Покажите пример батника.
SAK
09.12.2016 15:26:46
Форум: Free Pascal Compiler
Тема: Проблема передачи кода из halt в переменную %ERRORLEVEL%
Ответы: 10
Просмотры: 11437

Re: Проблема передачи кода из halt в переменную %ERRORLEVEL%

Следующая программа тоже возвращает 0?

Код: Выделить всё

begin
    halt(4)
end.


Пример батника можно увидеть?
SAK
27.09.2016 11:59:21
Форум: Lazarus
Тема: Как разбудить монитор движением?
Ответы: 35
Просмотры: 26828

Re: Как разбудить монитор движением?

ИК датчик охранной сигнализации с контактами реле внутри. Берём USB мышь и подпаиваем выход датчика параллельно одной из кнопок.
SAK
12.05.2016 15:52:13
Форум: Lazarus
Тема: integer или LongInt
Ответы: 12
Просмотры: 8881

Re: integer или LongInt

К тому же, integer это не встроенный тип, а значит может быть переопределен в любой момент.
Что помешает чешущимся рукам переопределить LongInt?

type
myReal = Real;
Real = LongInt;
LongInt = myReal;

var
r: real;
i: LongInt;

Когда руки чешутся надо противозудными средствами ...
SAK
29.01.2016 09:23:48
Форум: Free Pascal Compiler
Тема: [Решено] Две ошибки FreePascal
Ответы: 19
Просмотры: 23333

Re: [Решено] Две ошибки FreePascal

SAK, потому что отсчет идет с нуля... это общеизвестный факт.
А если глаза протереть?
Buf: Array [1..32767] Of Byte;
setlength(Buf,32767);
aArrStatic: Array [1..32767] of Word;
GetMem(pBuf, 32767);
И ни одного объявления с длиной буфера 32768.

Тут еще надо знать счетчик массива знаковый ...
SAK
28.01.2016 13:39:11
Форум: Free Pascal Compiler
Тема: [Решено] Две ошибки FreePascal
Ответы: 19
Просмотры: 23333

Re: [Решено] Две ошибки FreePascal

И ещё почему 32767, а не 32768? 32 кБ это 32768 байт. объявление будет: array[0..32767] of byte или array[1..32768] of byte.
SAK
31.12.2015 14:21:20
Форум: Потрепаться
Тема: Глобальные переменные
Ответы: 243
Просмотры: 289059

Re: Глобальные переменные

Допустим: Пи теперь не 3.14
Вы хотите сказать, что у Вас есть такая окружность у которой отношение длины к диаметру не равно 3,14...? Это число не является заданным какими-либо соглашениями, поэтому и изменить его Вы не можете.
"е" равно "м" "с квадрат" Вообще-то, насколько я понимаю, имелось ...
SAK
09.12.2015 16:09:26
Форум: Lazarus
Тема: Решено: Кроссплатформеность проекта - как ее добиться?
Ответы: 57
Просмотры: 45425

Re: Решено: Кроссплатформеность проекта - как ее добиться?

Вот это вот делает весьма сомнительным способ сохранения например Record'ов или массивов операторами типа BlockWrite.
На этот случай есть слово "packed".

А зачем?
Так я тоже не знаю зачем, но Ваши же слова:
bormant, можно даже хуже (так как integer это переопределяемый тип)

type Integer ...
SAK
09.12.2015 10:56:33
Форум: Lazarus
Тема: Решено: Кроссплатформеность проекта - как ее добиться?
Ответы: 57
Просмотры: 45425

Re: Решено: Кроссплатформеность проекта - как ее добиться?

Например, при определении типа (класса), даже какого то пресловутого массива. Плюс, даже неинициализированные переменные требуют места для хранения (если есть возможность, то они тупо заливаются всем сегментом в память)
А ещё есть такое понятие выравнивание данных mВыравнивание_данных и если это ...
SAK
27.11.2015 19:11:29
Форум: Lazarus
Тема: Решено: Кроссплатформеность проекта - как ее добиться?
Ответы: 57
Просмотры: 45425

Re: Решено: Кроссплатформеность проекта - как ее добиться?

переменную счетчик придется уменьшать, так как размер программы увеличится до безобразия? Или что из-за большого размера счетчика лично Ваша программа зависнет?
Это как? Я не могу понять как размерность переменной может повлиять на размер программы. Также не могу представить какова может быть ...
SAK
27.11.2015 15:43:16
Форум: Lazarus
Тема: Решено: Кроссплатформеность проекта - как ее добиться?
Ответы: 57
Просмотры: 45425

Re: Решено: Кроссплатформеность проекта - как ее добиться?

Тут еще есть вопрос не скорости (все равно счетчик не дает особой потери производительности, да и, насколько мне известно, циклы крутятся преимущественно на регистрах процессора).
И даже для работы с гегистрами оптамальнее переменные равные по разрядности регистру, иначе идёт потеря ...
SAK
27.11.2015 14:09:17
Форум: Lazarus
Тема: Решено: Кроссплатформеность проекта - как ее добиться?
Ответы: 57
Просмотры: 45425

Re: Решено: Кроссплатформеность проекта - как ее добиться?

Используй для счетчиков цикла не Integer, а Byte -- я сомневаюсь, что цикл будет крутиться больше 250 раз.
Вот с этим утверждением позвольте не согласиться. Тип Integer действительно платформозависимый, но именно поэтому он оптимален для различных счётчиков, поскольку процессор обрабатывает числа ...
SAK
22.09.2015 21:05:17
Форум: Lazarus
Тема: Вот со звуком надо бы поработать....
Ответы: 34
Просмотры: 29015

Re: Вот со звуком надо бы поработать....

А как убрать сообщение с заголовка формы теперь?:)
Ну так:
mciGetErrorStringA - получить текст сообщения об ошибке по номеру ошибки,
Text:=AnsiToUtf8(s) - вывести текст в заголовок окна - это было сделано для диагностики ошибок.
А что бы петь рано не начинало нужно убрать автосоздание формы в ...
SAK
22.09.2015 16:12:19
Форум: Lazarus
Тема: Вот со звуком надо бы поработать....
Ответы: 34
Просмотры: 29015

Re: Вот со звуком надо бы поработать....

m

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, messages, mmsystem, LMessages, windows;

type

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;

var ...