1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 87
1

Каксделать что бы переменная могла принимать значение типа real и значение nil?

08.07.2013, 10:41. Показов 1229. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть функция :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function kvkor(a:real; b:real) :real;
begin
If a = nil then
Begin
...
end
Else
Begin
If b = nil then
Begin 
...
End;
End;
End;
Как сделать что бы переменные могли принимать значение nil?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2013, 10:41
Ответы с готовыми решениями:

Значение переменной типа real не меняется
Есть код: procedure TForm1.ComboBox1Click(Sender: TObject); begin Case Combobox1.Itemindex of...

Какое значение будет принимать переменная?
Какое значение будет принимать переменная R после исполнения оператора, если переменная Y=26?...

Какое значение будет принимать переменная после исполнения операторов
Какое значение будет принимать переменная С после исполнения операторов, если переменные примут...

Какое значение примет переменная после выполнения фрагмента алгоритма, если переменная а имела значение 'ИНФОРМАТИКА'
Имеется фрагмент алгоритма, записанный на алгоритмическом языке: m := 10 b := Извлечь(а, m) нц...

12
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
08.07.2013, 10:44 2
Никак, "0" напиши.
0
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 87
08.07.2013, 11:09  [ТС] 3
Цитата Сообщение от FIL Посмотреть сообщение
Никак, "0" напиши.
Не вариант, функции могут передаваться значения 0.
0
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
08.07.2013, 11:11 4
Функции по-любому какие-то значения будут передаваться.
Ты лучше опиши толком, что сделать пытаешься.
0
3549 / 2166 / 685
Регистрация: 29.05.2013
Сообщений: 9,268
08.07.2013, 11:22 5
Для подобных вещей и был заведен тип variant. Только не nil а NULL будет для пустого значения.

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function kvkor(a:variant; b:variant) :variant;
begin
If a = null then
Begin
...
end
Else
Begin
If b = null then
Begin 
...
End;
End;
End;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
08.07.2013, 11:29 6
Variant был заведен для других вещей. Для таких, что нужны ТС-у, был придуман ссылочный тип:

Delphi
1
2
3
4
5
type PReal = ^Real;
function kvkor(a : PReal; b : PReal) : Real;
begin
  if Assigned(a) then // ...
end;
Передашь nil - получишь nil в качестве параметра...
0
3549 / 2166 / 685
Регистрация: 29.05.2013
Сообщений: 9,268
08.07.2013, 11:41 7
Цитата Сообщение от UI Посмотреть сообщение
Variant был заведен для других вещей. Для таких, что нужны ТС-у, был придуман ссылочный тип:
Подождем автора и посмотрим кто ближе к истине
0
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 87
08.07.2013, 11:42  [ТС] 8
FIL, Делаю прогу типо как Ловиответ, для квадратных корней и нужно что бы функция определа, если значение есть значит читать одно, а если нет тогда делать другие вычисления.
0
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
08.07.2013, 11:47 9
Тогда назнач число, которое будет считаться отсутствием ответа. Например, 1.1234567 и проверяй его.
0
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 87
08.07.2013, 12:33  [ТС] 10
Цитата Сообщение от Пытливый Посмотреть сообщение
Для подобных вещей и был заведен тип variant. Только не nil а NULL будет для пустого значения.

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function kvkor(a:variant; b:variant) :variant;
begin
If a = null then
Begin
...
end
Else
Begin
If b = null then
Begin 
...
End;
End;
End;
Выдает ошибку, пишет нет такой переменной NULL.

Добавлено через 5 минут
Цитата Сообщение от UI Посмотреть сообщение
Variant был заведен для других вещей. Для таких, что нужны ТС-у, был придуман ссылочный тип:

Delphi
1
2
3
4
5
type PReal = ^Real;
function kvkor(a : PReal; b : PReal) : Real;
begin
  if Assigned(a) then // ...
end;
Передашь nil - получишь nil в качестве параметра...
Когда в Assigned вставляй число,в пишет, типы не совместимы.
0
3549 / 2166 / 685
Регистрация: 29.05.2013
Сообщений: 9,268
08.07.2013, 12:40 11
Выдает ошибку, пишет нет такой переменной NULL.
А модуль Variants у вас подключен?
1
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 87
08.07.2013, 13:56  [ТС] 12
Спасибо, заработало с NULL.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
08.07.2013, 14:29 13
veles123, пример вызова этой функции покажешь, или как?
0
08.07.2013, 14:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2013, 14:29
Помогаю со студенческими работами здесь

Метод Симпсона - попытка присвоить значение integer переменной типа real
Как исправить ошибку? В строке N2:= n/2; пишет попытка присвоить значение integer переменной типа...

Есть переменная типа char содержащая цифру; как записать это значение в переменную типа int?
Пожалуйста, напомните стандартную функцию

Какого типа std::endl ? Как сделать так, чтобы функция могла принимать endl в качестве аргумента?
Что надо указать в прототипе функции, чтобы можно передавать std::endl в качестве аргумента? Уже 3...

Переменная которая может принимать два типа
Можно ли в С++ сделать так чтобы переменная могла принимать два типа unsigned char и TestClass??...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru