Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretvaranje niza u varijablu

[es] :: Pascal / Delphi / Kylix :: Pretvaranje niza u varijablu

[ Pregleda: 3158 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Pretvaranje niza u varijablu13.04.2005. u 20:13 - pre 230 meseci
Pozdrav!
Dugo vas vec nisam nista pitao, pa evo da to malo izmjenim. Dakle, problem je jednostavan: na koji nacin mogu da pretvorim neki niz u jedan od osnovnih tipova varijabli (integer, longint, string)?
Da li postoji posebna naredba kojom se to radi ili se za svaki od ovih tipova mora koristiti posebna procedura. Ja sam napravio jedno koja bi to omogucavala u tipovima koji rade sa brojevima, dakle integer, longint i real (originalno sam ga napisao za integer, ali lako ga je prepraviti):

Code:

program paskal;
uses wincrt;
var i,broj:integer;
niz:array [1..5] of integer;
Begin

Randomize;
for i:=1 to 5 do
begin

repeat                    
niz [i]:=Random (10);
until (niz[1]<4) and (niz[2]<6);   {ovaj dio odredjuje clanove niza}
Writeln ('Niz[',i,']=',niz[i]);    {i nepotreban je ako je niz zadan}
End;

For i:=1 to 5 do
broj:=broj*10+niz[i];

writeln;
writeln ('broj=',broj);
end.


Medjutim sta ako zelim pretvoriti niz u string (koji je sam po sebi niz char-a)?
Hvala!



 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Re: Pretvaranje niza u varijablu13.04.2005. u 20:17 - pre 230 meseci
i jedna mala ispravka:
Code:

until (niz[1]<4) and (niz[2]<3);


 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: Pretvaranje niza u varijablu13.04.2005. u 20:26 - pre 230 meseci
Pa nece ni tako ispravno da ti radi na Integeru. Sta ako je niz[3]=8?
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Re: Pretvaranje niza u varijablu13.04.2005. u 20:38 - pre 230 meseci
Znam, moram da definisem maximalnu vrijednost za svih 5 cifara, ali sam zaboravi do koliko je tacno ono integer ogranicen. Negdje oko 32 hiljade i nesto, ali to nesto uvijek zaboravim!

 
Odgovor na temu

--SOULMaTe--
Nemanja Skoric
Novi Sad

Član broj: 1464
Poruke: 173
*.nat-pool.nsad.sbb.co.yu.



Profil

icon Re: Pretvaranje niza u varijablu13.04.2005. u 23:09 - pre 230 meseci
Pa to ti je makar lako izracunati. Integer u pascalu je 16 bitni. Pa mu signed varijanta dodje od -2^15 do 2^15-1
Don’t do drugs, sleep deprivation is better.
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Re: Pretvaranje niza u varijablu14.04.2005. u 12:42 - pre 230 meseci
Dobro, svi ste u pravu, ali ima li neko resenje mog problema? Da li je moguce neki niz pretvoriti u varijablu samo uz pomoc jedne naredbe? Kopao sam po helpu, ali nisam mogao nista slicno da nadjem. Zanima me kako niz char-a pretvoriti u string, da li pomocu naredbe copy, ili kako? (znam da ima naredba pomocu koju se moze u string dodavati novi znak (znaci) i koja bi rjesila moj problem, ali ne znam koja je to naredba).

:(

 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.neobee.net.

Sajt: www.unicornsoft.net


Profil

icon Re: Pretvaranje niza u varijablu14.04.2005. u 14:52 - pre 230 meseci
Da, postoji procedura koja radi ovo:

Code:
Move(var Source, Dest; Count: Word);


Ona kopira sadrzaj bilo koje promenljive bilo kog tipa u drugu promenljivu koja ne mora da bude istog tipa kao i prva, i kopra Count bajtova. Da bi koristio ovu funkciju, moras dobro znati kako ti je definisan koji tip, u suprotnom ovo nema nikakvog smisla. Konkretno za primer koji si ti naveo, moze da se uradi ali pod uslovom da kao prvi elemenat niza stavis karakter ciji je ASCII kod jednak duzini stringa. Evo ti jedan pimer:


Code:

Var
    Niz : Array [0..255] Of Char;

    x : Integer;
    DuzinaNiza : Integer;
    
    S : String;
    
Begin
    FillChar (Niz, SizeOf (Niz), 0); { brisemo sadrzaj niza  (#0 u sve elemente) }
    
    Randomize;
    DuzinaNiza := Random (255);     
    For X := 1 To DuzinaNiza Do
        Niz [x] := Chr (Random (27) + 65); {Ubacujemo u niz DuzinaNiza random karaktera izmedju 'A' i 'Z' }
    Niz [0] := Chr (DuzinaNiza); { Postavljamo duzinu stringa }
    
    Move (Niz, S, DuzinaNiza); { I na kraju kopiramo }
    
    WriteLn (S);
End.


Nadam se da nema gresaka, pisem iz glave.
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
*.dialup.blic.net.



+148 Profil

icon Re: Pretvaranje niza u varijablu14.04.2005. u 21:34 - pre 230 meseci
Hvala ti, ja mislim da sam to shvatio, imam jos nekih par nedoumica, ali to cu pokusati da shvatim sam (nije fazon da vas sve pitam, ne bi bilo zabavno!)
:)

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pretvaranje niza u varijablu

[ Pregleda: 3158 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.