🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92670

Re: Przykłady - przekazywanie parametrów w prcedurach

#92670
From: Łukasz 'Maly' Ostrowski
Date: Wed, 15 Oct 2008 13:48
84 lines
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-mail
References: <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