![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Дмитрий |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
Извините за глупый вопрос, но просмотрев форум и FAQ я так и не нашел ответ
![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Код procedure p(var x : integer); begin x := 100; end; Сообщение отредактировано: klem4 - 11.12.2005 13:35 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
APAL |
![]()
Сообщение
#3
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Или:
Код Var a : byte; ... Procedure Test; Begin ... a:=200; ... End; ... -------------------- |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
klem4, заголовок посмотри
![]() Дмитрий, если тебе нужно именно использование глобальных переменных, то при таком описании: Код Var x: integer; Procedure Y; Begin X := 100; End; как раз глобальные переменные и используются... Вариант klem4 показывает, как использовать Var-параметры, но они не обязательно должны быть глобальными. Вот, например, локальные Var-параметры: Код procedure B(var x: integer); begin x := 100; end; Procedure A; Var x: integer; begin procedure B(x); end; klem4 : ![]() |
APAL |
![]()
Сообщение
#5
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
2Volvo: Так и я про то же... ;)
Сообщение отредактировано: APAL - 11.12.2005 13:50 -------------------- |
Дмитрий |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
Возможно я неточно спросил, имелось ввиду следущее:
Код var x:integer; procedure 123( ); begin x:=12; end; begin x:=10; 123(x); writeln(x); end. Что нужно написать в скобках procedure 123(); чтобы в результате работы программы вывелось 12, а не 10? (Насколько я понял в данном случае необходимо передать параметр по ссылке, но у меня не работала программа, когда в скобках я писал var x:integer;). ( Мне необходимо чтобы одна процедура например заполняла несколько массивов в зависимости от параметров, поэтому использование каких-либо конкретных глобальных переменных неприемлемо =(( ) Код procedure enter (var arra:arr; n:integer); var i:integer; begin writeln('Введите длину массива'); readln(n); for i:=1 to n do begin readln(arra[i]); end; end; В результате работы такой процедуры у меня заполняется массив, но во второй переменной нету длины полученного массива. =(( ( вызов осуществляю вот так: enter(a,na);) Сообщение отредактировано: Дмитрий - 11.12.2005 14:52 |
trminator |
![]()
Сообщение
#7
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Измени
Код procedure enter (var arra:arr; n:integer); на Код procedure enter (var arra:arr; var n:integer); А то у тебя только первый параметр по ссылке передавался. Но к глобальным переменным это имеет мало отношения. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Второй Var не забывай ... Перед каждой новой переменной нужно Var проставлять заново, иначе эта переменная будет считаться "переданной по значению", и ее изменение не передастся в вызывающий блок...
Код procedure enter (var arra:arr; var n:integer); var i:integer; begin writeln('Введите длину массива'); readln(n); for i:=1 to n do begin readln(arra[i]); end; end; |
Дмитрий |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогло! Спасибо за помощь. Ушел учить матчасть =)
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 17:40 |