![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Client |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
не могу понять в зависимости от чего Z получает значение в тексте программы.
подскажите почему
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Z - это формальный параметр, с которым работает подпрограмма.
Ты передаешь в функцию какое-то значение, внутри функции оно доступно под именем Z. |
Client |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
так я же ни где z н присваиваю значение. А Z здесь параметр-переменная или параметр-константа?
|
2ral |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Реальное имя: Neymanov Tural Репутация: ![]() ![]() ![]() |
если хочешь что бы функция не давала никакого значения Z просто обнули его в самом начале.
-------------------- Смейся и весь мир будет смеяться вместе с тобой, плачь и ты будешь плакать в одиночестве (Old Boy)
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата А Z здесь параметр-переменная или параметр-константа? Просто параметр... Был бы параметр-переменная, его изменение передалось бы в основную программу - этого не происходит. Был бы параметр-константа, ты бы вообще не откомпилировал программу, потому как нельзя менять константу, ты меняешь - значит, не константа...Цитата я же ни где z н присваиваю значение. Повторяю: ты передаешь значение (неважно какое, КАКОЕ-ТО) в функцию? Вот функция ПРИНИМАЕТ его как Z (ты не должен ничего присваивать, за тебя это делает компилятор) |
Client |
![]()
Сообщение
#6
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
спасибо за помощь
У меня еще вопрос Почему эти 2 примера работают одинаково uses crt; и Добавлено через 5 мин.
Если у кого-нибудь есть материал про функции и процедуры, просьба, дайте ссылку Сообщение отредактировано: Client - 11.11.2007 7:24 |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Почему эти 2 примера работают одинаково -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Client |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата writeln(' (x+y)*2/y= ',qw(x):0:13); вот здесь опять вызывается функция? или нет |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
вот здесь опять вызывается функция? или нет Да. Иначе говоря, предыдущий вызов (на отдельной строчке) - лишний. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Client |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
я вот понимаю функцию так: в теле функции пишем операторы, имени функции присваиваем значение. потом при вызове функции используется ее значение. Вот например я делал программу, там надо найти дату на к дней назад с учетом висогного года. Значит можно сделать функцию логического типа и если год високосный то ей присвоить значение TRUE иначе FALSE. а потом в самой программе при проверке условия просто подтавляем
IF ИМЯ ФУНКЦИИ THEN в феврале 29 дней... я правильно понял? |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата я правильно понял? В основном... Только надо бы еще функции передать год, который ты собрался проверять на високосность, вот тогда будет совсем правильно... |
Client |
![]()
Сообщение
#12
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
function visgod:longint{хотя можно integer};
begin if (god mod 4=0) and not((god mod 100=0) and (god mod 400<>0)) then visgod:=god; end Вроде того? |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Я вот тут: помогите плиз
тебе уже показывал, КАК ИМЕННО, а не "вроде того"... |
Client |
![]()
Сообщение
#14
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
всегда прокалываюся здесь
еще в тетради записывал, что не надо логич переменной присваивать значение с промощью условного оператора. эх.. спасибо за ответы Сообщение отредактировано: Client - 11.11.2007 19:14 |
Client |
![]()
Сообщение
#15
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
у меня еще вопрос
Function f(a:'a'..'z'):boolean;Почему так нельзя описывать параметры?? Обязательно надо создать свой диапазонный тип?? |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Цитата Почему так нельзя описывать параметры?? Потому что Паскаль (Турбо и Object, помнится, что Extended вроде бы все-же разрешает) не позволяет конструировать типы в заголовках подпрограмм, а ты именно это и пытаешься сделать... |
Client |
![]()
Сообщение
#17
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
не позволяет конструировать типы в заголовках подпрограммЯсно, т.е. можно использовать только уже описанные типы. А вот здесь procedure(const A: array of mas_type; const size: integer);при описание массива?? И еще, как еще можно описать параметры, кроме как через VAR,CONST?? или это все способы?? Сообщение отредактировано: Client - 23.12.2007 13:05 |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
А вот здесь - ты не конструируешь новый тип, ты используешь открытый массив - их возможно использовать только в качестве параметров подпрограммы. Даже если в 32-битных компиляторах ты создашь динамический массив через
type , то это будет совсем не то, что procedure p(var arr: array of integer); Цитата как еще можно описать параметры, кроме как через VAR,CONST?? Можно вообще без ничего передавать, "по значению". Можно сделать бестиповый параметр:procedure p(var v); , тогда туда можно передать все, что угодно (фактически - это указатель (нетипизированный, pointer) на область памяти, занимаемой объектом). Пример использования я приводил здесь: Задача... вообщем не пойму на что |
Client |
![]()
Сообщение
#19
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Спасибо volvo
помог как всегда ![]() |
Client |
![]()
Сообщение
#20
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Можно еще вопрос?
Вот в основной программе можно сделать так n:=f(z);А в самой функции f как-нибудь можно написать k:=f;Чтоб в К лежало значение этой функции, но чтоб при этом не было рекурсии, чтоб здесь компилятор не просил параметр. Если можно, то как? |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 14:55 |