Article View: pl.comp.lang.pascal
Article #92670Re: Przykłady - przekazywanie parametrów w prcedurach
From: Łukasz 'Maly' Ostrowski
Date: Wed, 15 Oct 2008 13:48
Date: Wed, 15 Oct 2008 13:48
84 lines
2800 bytes
2800 bytes
Sebastian Szwarc wrote:
> Czy ktos zna strone gdzie dałoby sie znalezc ciekawe przykłady na
> rozne sposoby przekazywania parametrów w procedurach i funkcjach, tak
> by uczniowie technikum byli je w stanie zrozumiec...:)
> Szukalem co nieco ale niewiele znalazłem a bez przykładów trudno to
> tłumaczyć.
A niech strace przeklepanie dokumentacji ;).
Żeby to było totalnie "przykładowe" wystarczy dopisać
WriteLn(zmienna) w miejscach komentarzy.
Przez wartość:
procedure foo(someParam:integer);
zmiany dokonane w ciele procedury na parametrze będa widoczne
tylko w ciele procedury.
<snip>
procedure foo(someParam:integer);
begin
Inc(someParam); // po tym someParam wynosi 2, ale bar wynosi
// nadal 1
end;
var
bar : integer;
begin
bar := 1;
// tutaj bar = 1
foo(bar);
// tutaj bar dalej = 1
end.
</snip>
---
Przez referencje:
procedure foo(var par:integer);
zmiany na parametrze w ciele będą widoczne na zewnątrz wywołania.
procedure foo(var par:integer);
begin
Inc(par); // po tym, par = 2, i bar = 2
end;
var
bar : integer;
begin
bar := 1;
foo(bar);
// i tutaj bar = 2
end.
---
Object Pascal'owy out, omówiony przez "nas" tutaj:
http://tiny.pl/s7hm
---
Do tego przekazanie z ObjectPascala, które pozwala
przekazać w wygodny sposób liste parametrów
róznych typów[jeżeli można to potraktować jako
'typ przekazania']:
procedure foo(bar:array of const);
begin
end;
// w to jak to sie obrabia odsyłam do dokumentacji
// fpc - www.freepascal.org
begin
foo(['12123', 45, '2', 2.4]);
end.
p.s. "ciekawe przykłady"? Przykłady nie służa do
bycia ciekawymi, tylko do minimalistycznego przedstawienia
zagadnienia.
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski.
http://maly.nemo.pl/
Technical Details
Message-ID:
<gd4san$1eg$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<gd36g0$nra$1@news.wp.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Przykłady - przekazywanie parametrów w prcedurach Date: Wed, 15 Oct 2008 15:48:05 +0200 Organization: Dialog Net Lines: 85 Message-ID: <gd4san$1eg$1@news.dialog.net.pl> References: <gd36g0$nra$1@news.wp.pl> NNTP-Posting-Host: static-78-8-208-81.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1224078487 1488 78.8.208.81 (15 Oct 2008 13:48:07 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Wed, 15 Oct 2008 13:48:07 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit