Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



Zjednodušení algoritmu (Pascal)

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Zjednodušení algoritmu (Pascal)

Autor: zdfgsdfgsedrgsdfg ♂

21:07:27 16.01.2013

pro paskalisty rychla ucebnice c:

x++ je jako x=x+1

indexy pole jedou od nuly v c, ne od jednicky jako v pascalu

&& je and

== je test na rovnost

int* array se v c pouziva pro pole (vyhledej ukazatel/pointer)

Citovat příspěvek

 

Re: Zjednodušení algoritmu (Pascal)

Autor: TC ♂

17:10:12 16.01.2013

tomas.ch napsal/a

Dobrý den,
mám tu jeden velice základní algoritmus, abych na něm ilustroval jiný problém, který teď řeším. Nejedná se ani tak o problém, protože algoritmus je funkční, ale spíše o to, že bych ho chtěl zjednodušit.
Úkol tohoto algoritmu je následující: V poli jsou uložena čísla. Já chci vlžit na konec pole další číslo, ale pouze za předpokladu, že se v poli
číslo už nevyskytuje.

{I = pomocná proměnná začínající na 1
P = [array of byte]}
while ( I < 100 ) AND ( P[I] <> 10 ) {Procházím pole až dokonce, nebo dokud nnenaleznu prvek s hodnotou 10}
do inc(I); {Pořád zvyšuju I, abych se dostal nakonec}
if( P[I] <> 10 ) then begin {Pokud je prvek různý od 10ti, znamená to, že jsem na konci pole a mohu tedy prvek přidat}
P[I+1]:=10;
end;

na algoritmu se mi nelíbí, že je v něm 2x podmínka ( P[I] <> 10 ). Nenapadá někoho, jak by mohl jít tento už tak velice jednoduchý algoritmus ještě zjednoduši?



int(int*array,int n, int val)
{
int i;
for(i=0;i<n && array[i]!=val;i++);
if(i==n)array[n++]=val;
return n;
}

Zdravim

TC

Citovat příspěvek

 

Zjednodušení algoritmu (Pascal)

Autor: tomas.ch ♂

16:12:38 16.01.2013

Dobrý den,
mám tu jeden velice základní algoritmus, abych na něm ilustroval jiný problém, který teď řeším. Nejedná se ani tak o problém, protože algoritmus je funkční, ale spíše o to, že bych ho chtěl zjednodušit.
Úkol tohoto algoritmu je následující: V poli jsou uložena čísla. Já chci vlžit na konec pole další číslo, ale pouze za předpokladu, že se v poli
číslo už nevyskytuje.

{I = pomocná proměnná začínající na 1
P = [array of byte]}
while ( I < 100 ) AND ( P[I] <> 10 ) {Procházím pole až dokonce, nebo dokud nnenaleznu prvek s hodnotou 10}
do inc(I); {Pořád zvyšuju I, abych se dostal nakonec}
if( P[I] <> 10 ) then begin {Pokud je prvek různý od 10ti, znamená to, že jsem na konci pole a mohu tedy prvek přidat}
P[I+1]:=10;
end;

na algoritmu se mi nelíbí, že je v něm 2x podmínka ( P[I] <> 10 ). Nenapadá někoho, jak by mohl jít tento už tak velice jednoduchý algoritmus ještě zjednoduši?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: