Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
#1

Направление отсчёта до числа, на числовой линейке - Lazarus

05.04.2014, 23:16. Просмотров 454. Ответов 11
Метки нет (Все метки)

Для данной задачи результат или -1, или 0, или 1. Результат указывает направление отсчёта до числа числовой линейке (если я неправильно применяю термин "числовая линейка", то прошу поправить меня). Как вариант поделить его абсолютное значение (значение без знака) на фактическое. но тогда прийдётся проверять условие-не равно-ли число нулю, чтобы не вышел error (хроническая аллергия в запущенной форме на условные операторы , хотя я ещё нуб совсем). Может в среде что-нибудь предусмотрено на такие случаи? Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 23:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Направление отсчёта до числа, на числовой линейке (Lazarus):

За направление протекание электрического тока принято направление перемещения?
За направление протекание электрического тока принято направление перемещения?...

Направление числа в другой класс
У меня есть int x = 1; В классе формы. Мне надо, что бы его значение...

Книги по подготовке к линейке экзаменов по Java
Ищу книги по подготовке к линейке экзаменов по Java. Лучше в электронном виде....

Пополнение в линейке ZenFone смартфонов ASUS
Как многие уже знают, ASUS не дремлет и вовсю выпускает новые смарты. Как...

На длинной линейке сидит кузнечик: определить, сможет ли он попасть на отметку z
4.На длинной линейке сидит кузнечик. Изначально кузнечик находится на отметке...

Как работает шаговый клапан в линейке LG, принципы его работы
Собственно вопрос к коллегам - кто нить изучал вид сигналов на его управление?...

11
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
05.04.2014, 23:35 #2
Лучший ответ Сообщение было отмечено Hretgir как решение

Решение

Sign function
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
07.04.2014, 21:06  [ТС] #3
спасибо, попробую разобраться

Добавлено через 12 часов 11 минут
чёт не получается
Pascal
1
2
3
 function Sign(
  const AValue: Extended
):TValueSign; overload;
делал так
Pascal
1
2
3
difference1:=function Sign(
  const const AValue: Extended
):TValueSign; overload;
и так
Pascal
1
2
3
difference1:=function Sign(
  const difference1: Extended
):TValueSign; overload;
.
и так
Pascal
1
2
3
4
difference1:=y1-y2;
  function Sign(
  const difference1: Extended
):TValueSign; overload;
как это вообще исполняется? в книге ничего не ищется функцией поиска, так листал, вроде тоже нет. в печатной книге тоже ничего не нашёл.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
07.04.2014, 21:28 #4
Чего не получается? Вопрос свой перечитай, тебе надо было нечто, что вернет -1, 0 или 1 в зависимости от входящего параметра. Есть. Это функция Sign, передай в нее свое значение, тебе вернется результат типа TValueSign. Ты опять начал придумывать какие-то непонятные конструкции. Не зная их смысла - что можно тебе посоветовать, как ты думаешь?

Добавлено через 1 минуту
Нужно сравнение двух переменных - есть функция CompareValue
1
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
08.04.2014, 21:09  [ТС] #5
Цитата Сообщение от UI Посмотреть сообщение
Не зная их смысла - что можно тебе посоветовать, как ты думаешь?
тут думать не надо-пояснить смысл.
поясняю: я хочу присвоить, возвращённое функцией, значение переменной difference1, от неё, или присвоить его любой любой другой.
Pascal
1
2
3
4
difference1:=y1-y2;
  function Sign(
  const difference1: Extended
):TValueSign; overload;
Добавлено через 4 минуты
вобщем нужно узнать знак вот этой переменной difference1

Добавлено через 21 час 33 минуты
я кажется понял, на той странице-описания функций, стало быть-остаётся их вызвать.
Цитата Сообщение от UI Посмотреть сообщение
Это функция Sign, передай в нее свое значение, тебе вернется
просто я ни разу не пользовался функциями

Добавлено через 16 минут
и вот где её описывать не знаю, куда не приткну-везде ошибки выскакивают. прийдётся потерять время, правда всегда стоит времени.

Добавлено через 13 минут
а в принципе, просто надо было почитать больше книгу. всё понятно в общем.

Добавлено через 27 минут
вобщем я добился вот такой компиляции без ошибки. функцию описывал в процедуре. понял что у функции должно быть тело. но по ссылке нет тел функций, поэтому я просто сделал начало и конец, ни вставив внутрь ничего
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm1.calcBeginEndXString;
type TValueSign = -1..1;
 
var
aNumberVertex : array[1..3] of byte;//номер вершины
aCoordinateVertexX : array[1..3] of extended;
aCoordinateVertexY : array[1..3] of extended;
aPositionsVertex : array[1..9] of byte;
i:integer;
count:byte;
y1,y2,y3,difference1,difference2:extended;
function Sign(
     const AValue: Extended
   ):TValueSign; overload;
begin
 
end;
 
begin
for i:=0 to high(TimeABoxBeginEndY)-1 do
begin
  TimeBoxBeginEndY:=TimeABoxBeginEndY[i];
  aCoordinateVertexX[1]:=TimeBoxBeginEndY.px1;
  aCoordinateVertexX[2]:=TimeBoxBeginEndY.px2;
  aCoordinateVertexX[3]:=TimeBoxBeginEndY.px3;
  aCoordinateVertexY[1]:=TimeBoxBeginEndY.py1;
  aCoordinateVertexY[2]:=TimeBoxBeginEndY.py2;
  aCoordinateVertexY[3]:=TimeBoxBeginEndY.py3;
  aPositionsVertex[4]:=1;
  difference1:=y1-y2;
  difference2:=y2-y3;
 
 //if
end;
end;
Добавлено через 38 минут
научился, вроде :
Pascal
1
2
3
4
 aPositionsVertex[4]:=1;
  difference1:=y1-y2;
  difference1:=Sign(difference1);
  difference2:=y2-y3;
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
26.10.2014, 17:39  [ТС] #6
UI, у меня вопрос возник, человек один сказал, что эта функция - та-же проверка условий только кривая. мне что-то не верится что при её выполнении машина проверяет условия, иначе к чему тогда она? я думаю что машина не проверяет никаких условий, а скорее вычисляет один из трёх адресов. так-ли это? ну как минимум я думаю что она не проверяет условия, по существу
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
26.10.2014, 17:55 #7
Какая "эта"? Sign или CompareValue?
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
26.10.2014, 18:18  [ТС] #8
Sign. про другую Вы уже сказали ранее, что там сравнение, я только после вопроса обнаружил что тут уже речь велась о двух функциях. просто давно было, забыл.

Добавлено через 7 минут

Не по теме:

сигнатура числа разве проверяется сравнениями условий...это-же сигнатура...
или вход?...

0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
26.10.2014, 19:31 #9
Я твой язык не понимаю...

Sign выглядит вот так:
Pascal
1
2
3
4
5
6
function Sign(const AValue: {тип}): TValueSign; inline;
begin
  if Avalue < 0.0 then Result := NegativeValue
  else if Avalue > 0.0 then Result := PositiveValue
  else Result := ZeroValue;
end;
Как еще, кроме сравнения, ты хочешь сравнивать два значения - мне непонятно. И не надо объяснять, я все равно ничего не пойму. Мы люди простые, заявок в патентные бюро не пишем...
1
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
27.10.2014, 10:23  [ТС] #10
Я спросил делает машина сравнения или вычисления. На личности не перехожу, учебников не лабаю

Добавлено через 1 час 26 минут
Вычисление я рассматриваю как действия без проверки условий, то есть извлекается инкримент или декримент (не помню точно сейчас термины), и всё. При излечении инкримента или декримента разве делаются сравнения? В функции сигнала допускаю сравнение знаков, но не более.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
27.10.2014, 10:39 #11
Меня выдуманная тобой терминология не интересует. Есть исходник, есть (при желании) ассемблерный код. Смотри и решай, как это называется в твоих терминах.
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
27.10.2014, 18:29  [ТС] #12
А чего это она выдуманая мной? Название оператора разве не термин? Сейчас посмотрю в вики, ну и ассемблерный код, когда время будет.

Добавлено через 5 минут
Да в принципе, название оператора описывает ограничнный объём операций для машины, а не является переводом, значит попадает в категорию терминов.

Добавлено через 6 часов 41 минуту
Цитата Сообщение от UI Посмотреть сообщение
Мы люди простые, заявок в патентные бюро не пишем...
ну значит я сам останусь такой сложный, кто не делает сравнения в тонах
Цитата Сообщение от UI Посмотреть сообщение
Как еще, кроме сравнения, ты хочешь сравнивать два значения - мне непонятно.
и я не понимаю, просто думал что можно, но подумаю...ещё, если принципиально, то вроде можно, но выглядит сложнее

Добавлено через 14 минут
получатся вопросы правда.
сначала делим число само на себя, получим единицу если оно не равно нулю. далее как с массивом процедур, если ошибка или 0, то первая процедура с массива, если 1, то вторая процедура и новый массив процедур. модуль числа прибавляется к числу, первая процедура в втором массиве (при нулевом значении) укажет что знак числа "-", вторая при любом другом значении числа, что знак "+". но я могу и ошибаться. принципиально можно, но что в ассемблере сработает быстрее я не знаю. логика подсказывает что сравнить быстрее, а отсутствие опыта заставляет усомниться.
0
27.10.2014, 18:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2014, 18:29
Привет! Вот еще темы с решениями:

Разбиение числовой строки на отдельные числа
Допустим,пользователь в одну строку вводит 12 24 13. Нужно чтобы...

Перевести строковую запись числа в числовой вид
Дана строчная запись некоторого положительного числа. Записать эту строку в...

Найти наименьшую цифру в числовой записи числа
Проверьте всё ли правильно в решении пожалуйста)) УСЛОВИЕ: Дано натуральное...

Найти все нечётные числа в промежутке числовой последовательности
Найти все нечётные числа в промежутки числовой последовательности от A до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru