Poslao: 15 Okt 2006 19:42
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Treba da resim ovaj zadatak.
Napisati proceduru koja izracunava aritmeticku sredinu n celih brojeva.
Da li neko zna kako bi izgledala ova procedura?
Unapred hvala.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 15 Okt 2006 19:58
|
offline
- snoop
- Genghis Khan
- Pridružio: 18 Apr 2003
- Poruke: 8134
- Gde živiš: U kesici gumenih bombona...
|
Ne znam pascal, ali evo ti pseudo kod.
Saberes sve brojeve kroz koje prolazis kroz petlju.
U petlji stavis da ti se inkrementuje jedna promenljiva.
Posle petlje, podelis to sto si sabrao sa tom inkremenitranom vrednoscu i to je to...
Ako si trazio teoretsko , za prakticno, cekaj nekog pascal oriented programera.
|
|
|
|
Poslao: 15 Okt 2006 21:23
|
offline
- Strog
- Stručni saradnik
Web programiranje
- Bojan Kopanja
- Web & Mobile developer @ ZeusSoftware
- Pridružio: 26 Jul 2003
- Poruke: 2597
- Gde živiš: Stara Pazova
|
Za prakticno ne cekaj previse . Dobio si pseudo kod, a ti sad po njemu radi! Ako negde zapnes napisi ovde do gde si stigao i posuj kod pa ce neko da ga doradi/preradi, ali samo nemoj molim te ocekivati da ce neko resavati domaci za tebe .
|
|
|
|
Poslao: 15 Okt 2006 23:06
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Kako mislis u proceduru da uneses niz nepoznate velicine?
Ako ga budes uneo kao dinamicki array, onda ti je velicina matrice ujedno i broj kojim treba da podelis. Zbir elemenata matrice odradi iteriranjem (petlja), kao sto ti je snoop objasnio.
|
|
|
|
Poslao: 16 Okt 2006 10:07
|
offline
- Strog
- Stručni saradnik
Web programiranje
- Bojan Kopanja
- Web & Mobile developer @ ZeusSoftware
- Pridružio: 26 Jul 2003
- Poruke: 2597
- Gde živiš: Stara Pazova
|
bobby mozda i ne mora da bude niz... U zadatku nigde ne pise da se unos mora uraditi pre procedure, tako da program moze da lici na ovako nesto:
program aritm_sred;
begin
procedure neka_proc(...);
writeln(rezultat);
end;
Tako da ukoliko unos radi isto iz procedure to ide u petlji od 1 do n i odmah se svi brojevi sabiraju i podele sa n i to je to. Jedino tako mi pada na pamet da se odradi bez dinamickih nizova, tj. dinamickog zauzimanja memorije posto se unaored ne zna broj n .
Jedino ako se zna da je n max 200 onda nije problem ni sa nizom .
|
|
|
|
Poslao: 16 Okt 2006 10:51
|
offline
- NuLLCoDe
- Legendarni građanin
- Đuro Glumac
- dipl. ing. informatike
- Pridružio: 08 Feb 2004
- Poruke: 3640
- Gde živiš: ApAtIn
|
Ako se u zadatku kaze n celih brojeva, znaci da se taj broj n elemenata dobija i duzina niza je poznata. Tako da je najlakse uraditi sa array-om.
|
|
|
|
Poslao: 16 Okt 2006 13:14
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Ako je u pitanju TP, niz moze ovako da se prosledi funkciji:
{$R-}
type
TIntArray = array [0..0] of Integer;
PIntArray = ^TIntArray;
var
Niz: PIntArray;
function AritmetickaSredina(pNiz: PIntArray; iCount: Integer): Real;
var
I: Integer;
begin
for I := 0 to iCount - 1 do
// clanu pristupas sa pNiz^[I]
end;
begin
// uzmes broj n (broj clanova niza);
GetMem(Niz, N * SizeOf(Integer));
// popunis niz (Niz^[I])
// prosledis niz funkciji AritmetickaSredina(Niz, N)
FreeMem(Niz, N * SizeOf(Integer));
end.
Vrlo lako se napravi i objekat koji bi automatski kreirao niz brinuo se o njemu kao sto u Delphiu radi TList.
|
|
|
|