Pascal процедуры
Автор SPARTAK ULTRAS задал вопрос в разделе Другие языки и технологии
паскаль процедуры и функции и получил лучший ответ
Ответ от Капитан Гугл[гуру]
var означает передачу переменной по ссылке, без var - по значению. Например:
procedure change(a:integer;var b:integer);
begin
a:=5;
b:=6;
end;
...
begin
x:=1;y:=2;
change(x,y);
writeln(x, ' ',y);//выведет 1 6 - потому что x был передан по значению, и назад не вернулся, а y - по ссылке, и его значение было передано назад.
Зато
change(1,2);
вызовет ошибку - 1 передать можно, а вот вторым параметром должно быть что-то, что принимает значения (как правило, переменная).
Ответ от Cublen[гуру]
вот тебе 4 типа процедур, разбери их и все поймешь
--------------------------------------------------------------------------------
{program proc1_4; } {tip_1 0 vo vxoge, o na vixode}
{uses crt;
procedure f1;
var
a,b,c: integer;
begin
write('vvesti 2 chisla -->'); readln(a,b);
c:=a + b;
writeln('summa = ',c);
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
f1;
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
{ program proc1_4; } {tip_2 2 vo vxoge, o na vixode}
{ uses crt;
var
a,b: integer;
procedure f2(x,y:integer);
var
c: integer;
begin
c:=x + y;
writeln('summa = ',c);
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
f2(a,b);
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
{ program proc1_4;} {tip_3 0 vo vxoge, 1 na vixode}
{ uses crt;
var
c: integer;
procedure f3(var s:integer);
var
a,b: integer;
begin
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
s:=a + b;
writeln('summa = ',s);
end;
BEGIN
clrscr;
f3(c);
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
program proc1_4; {tip_4 2 vo vxoge, 1 na vixode}
uses crt;
var
a,b,c: integer;
procedure f4(x,y:integer;var z:integer);
begin
z:=x + y;
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
c:=a + b;
f4(a,b,c);
writeln('summa = ',c);
writeln('------------------');
writeln('konec zadachi');
readkey;
END.
вот тебе 4 типа процедур, разбери их и все поймешь
--------------------------------------------------------------------------------
{program proc1_4; } {tip_1 0 vo vxoge, o na vixode}
{uses crt;
procedure f1;
var
a,b,c: integer;
begin
write('vvesti 2 chisla -->'); readln(a,b);
c:=a + b;
writeln('summa = ',c);
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
f1;
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
{ program proc1_4; } {tip_2 2 vo vxoge, o na vixode}
{ uses crt;
var
a,b: integer;
procedure f2(x,y:integer);
var
c: integer;
begin
c:=x + y;
writeln('summa = ',c);
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
f2(a,b);
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
{ program proc1_4;} {tip_3 0 vo vxoge, 1 na vixode}
{ uses crt;
var
c: integer;
procedure f3(var s:integer);
var
a,b: integer;
begin
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
s:=a + b;
writeln('summa = ',s);
end;
BEGIN
clrscr;
f3(c);
writeln('------------------');
writeln('konec zadachi');
readkey;
END. }
program proc1_4; {tip_4 2 vo vxoge, 1 na vixode}
uses crt;
var
a,b,c: integer;
procedure f4(x,y:integer;var z:integer);
begin
z:=x + y;
end;
BEGIN
clrscr;
writeln('vichislenie summ chisl a and b');
writeln('--------------------------------');
writeln;
write('vvesti 2 chisla -->'); readln(a,b);
c:=a + b;
f4(a,b,c);
writeln('summa = ',c);
writeln('------------------');
writeln('konec zadachi');
readkey;
END.
Ответ от Jurijus Zaksas[гуру]
Передача переменной по ссылке. После выхода из подпрограммы значение переменной возвращается в вызывающую подпрограмму. Если значение возвращать не надо, var не пишется.
Передача переменной по ссылке. После выхода из подпрограммы значение переменной возвращается в вызывающую подпрограмму. Если значение возвращать не надо, var не пишется.
Ответ от Krab Bark[гуру]
var показывает, что будет использоваться именно указанная переменная (фактически передается ее адрес) , все проведенные изменения изменят ее значение после выхода из подпрограммы. Без var в подпрограмме будет создана копия переданной переменной, изменения в ней во время работы подпрограммы не отразятся на исходной переменной.
Кроме того, важно, что без var подпрограмме можно передавать в качестве параметра выражение, с var - только переменную.
var показывает, что будет использоваться именно указанная переменная (фактически передается ее адрес) , все проведенные изменения изменят ее значение после выхода из подпрограммы. Без var в подпрограмме будет создана копия переданной переменной, изменения в ней во время работы подпрограммы не отразятся на исходной переменной.
Кроме того, важно, что без var подпрограмме можно передавать в качестве параметра выражение, с var - только переменную.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: паскаль процедуры и функции
спросили в Интернет ABC
где скачать Pascal ABC ??
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на
подробнее...
где скачать Pascal ABC ??
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на
подробнее...
Программа умножение Pascal ABS,помогите доделать программу..
Вводи строки и превращай их в числа процедурой VAL. При неудаче она выдает соответствующий
подробнее...
что такое процедуры Турбо Паскаля
Чет сегодня засилье вопрососв про паскаль... .
Если в программе возникает необходимость частого
подробнее...
спросили в Leucoraja Object Pascal
Имеет ли смысл учить Pascal для того, чтобы проще было учить более современные языки (Например, perl, C/C++)?
Для сведения.
С намного (на очень много) старше Паскаля. Старинный С отличается от
подробнее...
Имеет ли смысл учить Pascal для того, чтобы проще было учить более современные языки (Например, perl, C/C++)?
Для сведения.
С намного (на очень много) старше Паскаля. Старинный С отличается от
подробнее...
Здравствуйте. Pascal. Не преобразовывается число в строку. См. вопрос.
Ты же переопределил имя str с обозначения стандартной процедуры на обозначение строки. Замени
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Object Pascal
Ребят на object pascal как перевести один тип данных в другой? На делфи это звучит так к примеру: strTOint а на паскале?
StrToInt нестандартная функцтя. ее удобство только в том что она функция.
зато сколько
подробнее...
Ребят на object pascal как перевести один тип данных в другой? На делфи это звучит так к примеру: strTOint а на паскале?
StrToInt нестандартная функцтя. ее удобство только в том что она функция.
зато сколько
подробнее...
[pascal] graph, пишу игру, есть вопросы
Честно говря, ниасилил... Но попытаюсь ответить.
Во-первых, действительно не совсем
подробнее...
спросили в VRR
Чет не понятно что и как работает truncate в pascal`е, подскажите кто знает?
Доброго времени суток.
А это из встроенной справки.
Truncate (процедура)
подробнее...
Чет не понятно что и как работает truncate в pascal`е, подскажите кто знает?
Доброго времени суток.
А это из встроенной справки.
Truncate (процедура)
подробнее...
PASCAL. Как преобразовать символ (char/string) в число (integer/byte/real etc) ?
Процедура val(Строка, ЧисловаяПеременнаяВКоторуюБудетПомещеноЧисло,
подробнее...
спросили в VRR
Задача в паскале!! Составить программу для вычеслени корней квадратного уравнения.Реализовать с помощью процедуры!!!
Это для вычисления для корней и для выявления действительно ли число иль нет. >>>
подробнее...
Задача в паскале!! Составить программу для вычеслени корней квадратного уравнения.Реализовать с помощью процедуры!!!
Это для вычисления для корней и для выявления действительно ли число иль нет. >>>
подробнее...
Что за параметры командной строки в процедуре "exec"? Pascal.
первый параметр - типа String - путь к запускаемой программе. Второй параметр типа String -
подробнее...
Преобразование строки в число в Turbo Pascal
По-моему, из текстового файла нормально числа читаются. Не надо никаких
подробнее...
спросили в Free Pascal
Как Integer конвертировать в String(Free Pascal)
IntToStr - это функция Delphi.
В паскале это процедура Str.
Str(x,
подробнее...
Как Integer конвертировать в String(Free Pascal)
IntToStr - это функция Delphi.
В паскале это процедура Str.
Str(x,
подробнее...