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

Kako iz fajla u matricu?

[es] :: Perl :: Kako iz fajla u matricu?

[ Pregleda: 4191 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.177.*



Profil

icon Kako iz fajla u matricu?30.01.2007. u 22:05 - pre 192 meseci
Imam problem vezan za grafove.
Dat mi je fajl u kojem pise:
1 2 15
1 3 16
2 3 20
i takom redom. Prve dve vrednosti u ulaznom fajlu predstavlja cvorove grafa a treca rastojanja izmedju njih.
Pri tom znam tacan broj cvorova. U ovom slucaju bi bio 4 (pocinje od nule).Meni je potreban Perl kod koji ce da napravi matricu koja bi izgledala
0 0 0 0
0 0 15 16
0 15 0 20
0 16 20 0
Hvala!
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?30.01.2007. u 23:47 - pre 192 meseci
Skript je jako jednostavan. 'Ajde, probaj, pa cu ti pomoci ako zapnes. Hocu da vidim da se i ti nesto trudis.
JaFreelancer.com
 
Odgovor na temu

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.183.*



Profil

icon Re: Kako iz fajla u matricu?31.01.2007. u 14:12 - pre 192 meseci
Moram reci da sam potpuno nov u perlu.Pokusao sam nesto da uradim, ali naravno, nije dobro.Nemam predstavu kako dalje.Any help?
Moja (ne bas najbolja) Ideja je:

#!/usr/bin/perl
$q=5 ;
$n = 5;
if($q) {
$n = 10;
for($i=1; $i<=$n; $i++){
for($j=$i; $j<=$n; $j++){
if((($i + 1 == $j) && ($i % $q != 0)) || ($i + $q == $j)) {
$c[$i-1][$j-1] = 0;
$c[$j-1][$i-1] = $c[$i-1][$j-1]
} else {
$c[$i-1][$j-1] = 0;
$c[$j-1][$i-1] = $c[$i-1][$j-1];
}
};
};
open(IFILE, $ifile);
while(<IFILE>) {
chop;
@pom = (@pom, split);
}
close(IFILE);

for($i=0; $i<$n; $i++) {
for($j=1; $j<$n+1; $j++) {
for($z=2;$z<$n+2;$z++){
$prvi=$pom[$i];
$drugi=$pom[$j];
$vrednost=$pom[$z];
$c[$prvi][$drugi] = $vrednost;
}
}
}
print "Graf:\n";
for($i=0; $i<$n; $i++){
for($j=0; $j<$n; $j++){
print $c[$i][$j], " ";
};
print "\n";
};
}
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?31.01.2007. u 16:29 - pre 192 meseci
Wow... Ne znam da li je zbog piva ili je nesto drugo u pitanju, ali, ne uspevam da ispratim tvoj kod. Moze li neki komentar uz sve ovo? I stavi kod izmedju code tagova, kako bi se zadrzao indent. Ne moras da dajes kompletan kod, mozes samo da mi recima opises svoju ideju.

P.S. Da li je u fajlu dato rastojanje izmedju svih cvorova, ili ti treba da implementiras neki algoritam za pronalazenje rastojanja izmedju svih cvorova?
JaFreelancer.com
 
Odgovor na temu

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.178.*



Profil

icon Re: Kako iz fajla u matricu?31.01.2007. u 18:04 - pre 192 meseci
Hvala sto se trudis da mi pomognes. Nisam bas dobar u perl, tj.znam tek nesto sto sam naucio za dva dana.
U ulaznom fajlu mi je dato : cvor X, cvor Y, rastojanje izmedju nijh. Za ona rastojanja koja nisu u ulaznom fajlu rastojanje je 0. tj. ako mi je dato:
1 2 15
1 3 16
2 3 20
Imam 0,1,2,3 cvorove. Rastojanje izmedju 1 i 2 je 15, 1 i 3 16, 2 i 3 rastojanje je 20.Sva ostala rastojanja su 0(na primer izmedju 0 i 1, 0 i 2 itd.)
Ono sto sam ja pisao verovatno nije ni priblizno dobro.Ne znam da li da komentarisem jer sam nesto sam smisljao i mislim da ne moze tako. Hvala jos jednom
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.dynamic.sbb.co.yu.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?31.01.2007. u 20:56 - pre 192 meseci
'Ajde ovako... Citas red po red. Uvek procitas 3 podatka. Prvi index, drugi index i rastojanje. Rastojanje izmedju a[1][2] je isto kao i rastojanje a[2][1]. Dakle, svaki put kad procitas jedan red (dva indexa i vrednost) odmah mozes da definises i drugu vrednost u matrici.

Kada popunis sve, samo izbrojis koliko imas redova (dodelis niz u skalar $duzina = @niz), i onda odstampas matricu. Napisi kod za prvi deo, pa cemo onda da predjemo na drugi. Ok?
JaFreelancer.com
 
Odgovor na temu

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.176.*



Profil

icon Re: Kako iz fajla u matricu?01.02.2007. u 01:40 - pre 192 meseci
Znam da tako nesto treba, ali ne znam da realizujem. Uspeo sam da napisem kod koji cita matricu iz jednog fajla i upisuje u drugi.
Sada ne znam kako da dodelim vrednosti elementima matrice. Kako da napisem for petlju da mi cita svaki treci broj?Uf, nemam pojma ni da li sam na pravom putu. Koliko sam razumeo logiku kada mi program procita matricu, njene vrednosti smesta u npr. @pom. Kako dalje te vrednosti da prebacim u novu matricu, a da one grane koje nisu u ulaznom fajlu budu 0??Gubim se....Sorry za smaranje
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?01.02.2007. u 10:43 - pre 192 meseci
Code:

#!/usr/bin/perl

open (ULAZ, "matrica.txt"); #otvaram fajl

while (<ULAZ>){ #dok ima fajla, radim sledecu stvar
        chomp; # pogledaj dokumentaciju koja je razlika izmedju chop i chomp
        ($i,$j,$v) = split(/ /); # u promeljive i, j i v sam stavio tri procitane vrednosti (pogledaj dokumetaciju za split)
        $a[$i][$j] = $v; #u matricu stavljam vrednost za prvi-drugi cvor
        $a[$j][$i] = $v; #to isto za drugi-prvi
}

$d = @a; #prebrojim koliko ima cvorova

for ($i = 0; $i < $d; $i++){
        for ($j = 0; $j< $d; $j++){ #dvostruka petlja da prodje kroz celu matricu
                if (defined $a[$i][$j]){ #ako je neki element matrice definisan, onda ga ispisemo
                        print $a[$i][$j];
                }
                else { #ako nije definisan, onda je tu 0
                        print "0";
                }
                print "\t"; #nakon svakog ispisanog elementa stavimo jedan tab, da lepse izgleda
        }
        print "\n"; #nakon svakog reda, jedan novi red
}


Eto ti kod sa sve komentarima. Krajnje jednostavno. Jedino mozda malo zbunjujuce je ovo sa defined, mada, to mozes da izbegnes ako pre nego krenes da popunjavas matricu, prvo celu matricu popunis nulama jos jednom dvostrukom petljom. Sve ostalo su osnove.

Mogao bi da kazes i koju knjigu koristis za ucenje perla, ili sta vec koristis.
JaFreelancer.com
 
Odgovor na temu

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.183.*



Profil

icon Re: Kako iz fajla u matricu?01.02.2007. u 15:55 - pre 192 meseci
Hvala puno. Na kraju si me naterao i sam sam uspeo nesto da uradim sinoc i jako je slicno ovom tvom kodu. Hvala jos jednom!
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?01.02.2007. u 16:49 - pre 192 meseci
Ako treba ja da te teram, onda jebiga... Gde je elan, mladost, poletnost...
Ja u tvojim godinama nisam pitao sta treba da se rusi a sta ne. Kod mene be ovaj zid pao za frtalj sata. - SMF
JaFreelancer.com
 
Odgovor na temu

M R C G
Beograd

Član broj: 38903
Poruke: 15
212.200.176.*



Profil

icon Re: Kako iz fajla u matricu?02.02.2007. u 00:22 - pre 192 meseci
Ma nisi me ti naterao, nego sam mislio da necu znati da uradim.Samo, ako nije previse, da te pitam kako da ovu matricu sacuvam u fajl?Hvala ti
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Kako iz fajla u matricu?02.02.2007. u 02:28 - pre 192 meseci
Otvoris jos jedan fajl za pisanje (pogledaj kako se to radi u knjizi), i izmenis print komande u petlji tako da pisu u fajl. Dodas po jednu rec. Koristi knjigu!
JaFreelancer.com
 
Odgovor na temu

[es] :: Perl :: Kako iz fajla u matricu?

[ Pregleda: 4191 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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