Kezdőlap › Fórumok › Programozás › Fejtörő – „csak guruknak”…
- This topic has 120 hozzászólás, 10 résztvevő, and was last updated 18 years telt el by
pointux.
-
SzerzőBejegyzés
-
2007-05-10-08:01 #2104305
van egy ötletem rá, de én PHP-ben írtam meg… a perlhez és a bash scripthez nem értek;
Code:class vizsla_feladata{
protected static function mInArray($needle,array $haystack){
$num=count($haystack);
for($i=0;$i<$num;$i++)
if($haystack[$i]==$needle) return $i;
return -1;
}public static function unio($arr0,$arr1){
$num=count($arr0);
for($i=0;$i<$num;$i++)
if(self::mInArray($arr0[$i],$arr1)==-1) $arr1[]=$arr[$i];
return $arr1;
}public static function metszet($arr0,$arr1){
$retval=array();
$num=count($arr0);
for($i=0;$i<$num;$i++)
if(self::mInArray($arr0[$i],$arr1)!=-1) $retval[]=$arr[$i];
return $retval;
}public static function kulonbseg($arr0,$arr1){
$retval=array();
$num=count($arr0);
for($i=0;$ifilecontent=fread($f,filesize($f));
fclose($f);
}public function getArray(){
$retval=array();
$pointer=0;
$strlen=strlen($this->filecontent);
for($i=0;$ifilecontent{$i}==”n”){
$pointer++;
$retval[$pointer]=””;
}else{
$retval[$pointer].=$this->filecontent{$i};
}
return $retval;
}
}a használata valami ilyesmi lenne:
Code:$f1=new loader(„1.txt”);
$f2=new loader(„2.txt”);
$arr0=$f1->getArray();
$arr1=$f2->getArray();
print_r(vizsla_feladata::unio($arr0,$arr1));
print_r(vizsla_feladata::metszet($arr0,$arr1));
print_r(vizsla_feladata::kulonbseg($arr0,$arr1));2007-05-10-08:01 #2104306van egy ötletem rá, de én PHP-ben írtam meg… a perlhez és a bash scripthez nem értek;
Code:class vizsla_feladata{
protected static function mInArray($needle,array $haystack){
$num=count($haystack);
for($i=0;$i<$num;$i++)
if($haystack[$i]==$needle) return $i;
return -1;
}public static function unio($arr0,$arr1){
$num=count($arr0);
for($i=0;$i<$num;$i++)
if(self::mInArray($arr0[$i],$arr1)==-1) $arr1[]=$arr[$i];
return $arr1;
}public static function metszet($arr0,$arr1){
$retval=array();
$num=count($arr0);
for($i=0;$i<$num;$i++)
if(self::mInArray($arr0[$i],$arr1)!=-1) $retval[]=$arr[$i];
return $retval;
}public static function kulonbseg($arr0,$arr1){
$retval=array();
$num=count($arr0);
for($i=0;$ifilecontent=fread($f,filesize($f));
fclose($f);
}public function getArray(){
$retval=array();
$pointer=0;
$strlen=strlen($this->filecontent);
for($i=0;$ifilecontent{$i}==”n”){
$pointer++;
$retval[$pointer]=””;
}else{
$retval[$pointer].=$this->filecontent{$i};
}
return $retval;
}
}a használata valami ilyesmi lenne:
Code:$f1=new loader(„1.txt”);
$f2=new loader(„2.txt”);
$arr0=$f1->getArray();
$arr1=$f2->getArray();
print_r(vizsla_feladata::unio($arr0,$arr1));
print_r(vizsla_feladata::metszet($arr0,$arr1));
print_r(vizsla_feladata::kulonbseg($arr0,$arr1));2007-05-10-10:08 #2104307Majd ha valamikor jobban ráérek, próbálok rittyenteni rá valamit.
De hogy valami konstruktív is legyen, én is adok egy feladatot, amin én majd’ egy órát gondolkodtam:
kell egy olyan (mondjuk bash) szkript(-szerűség), ami megadott [red]verziószámokat rendez[/red], tehát:Code:1.2.3
1.1.3
2.1.4
1.1.5sorból egy
Code:1.1.3
1.1.5
1.2.3
2.1.4sort csinál. Persze nem csak erre működik jól 😉
Feltehető, hogy mondjuk fájlban van a cucc. Én speciel csövekkel oldottam meg, de érdekel más megoldás is. Ja, és lehetőleg alap-parancsokkal, bash-módon!Szerk.: vizsla kedvéért és kívánságára a megfelelő formázást bevetettem.
2007-05-10-10:08 #2104308Majd ha valamikor jobban ráérek, próbálok rittyenteni rá valamit.
De hogy valami konstruktív is legyen, én is adok egy feladatot, amin én majd’ egy órát gondolkodtam:
kell egy olyan (mondjuk bash) szkript(-szerűség), ami megadott [red]verziószámokat rendez[/red], tehát:Code:1.2.3
1.1.3
2.1.4
1.1.5sorból egy
Code:1.1.3
1.1.5
1.2.3
2.1.4sort csinál. Persze nem csak erre működik jól 😉
Feltehető, hogy mondjuk fájlban van a cucc. Én speciel csövekkel oldottam meg, de érdekel más megoldás is. Ja, és lehetőleg alap-parancsokkal, bash-módon!Szerk.: vizsla kedvéért és kívánságára a megfelelő formázást bevetettem.
2007-05-10-16:33 #2104309Code:mkdir tmpdir
for i in $verziok; do touch tmpdir/$i; done
$rendezett=`ls tmpdir/`
rm -r tmpdir2007-05-10-16:33 #2104310Code:mkdir tmpdir
for i in $verziok; do touch tmpdir/$i; done
$rendezett=`ls tmpdir/`
rm -r tmpdir2007-05-10-17:37 #2104311Nem nyert hangszórót, ennyire azért nem egyszerű:
Code:$ ls
1.10.1 1.2.3 2.3.4(Egyébként én is gondoltam egy ilyen megoldásra, de aztán gyorsan rájöttem, hogy a többjegyű számok durván bekavarnak)
2007-05-10-17:37 #2104312Nem nyert hangszórót, ennyire azért nem egyszerű:
Code:$ ls
1.10.1 1.2.3 2.3.4(Egyébként én is gondoltam egy ilyen megoldásra, de aztán gyorsan rájöttem, hogy a többjegyű számok durván bekavarnak)
2007-05-10-18:32 #2104313Elore jelzem, hogy a scripteleshez nem ertek.
Azt viszont meg lehetne csinalni, hogy :
1. a bemeneti szamokat felvagni a pontoknal es mondegyik szamra vegrehajtani:
2. az adott szammal azonos nevu mappat letrehozni
3. ha pont kovetkezik, belepni a letrehozott mappaba es ugras a 2. pontraA kimenetet medig a letrehozott konyvtarstruktura bejarasa jelenene.
Nem tul egyszeru, de remelem meg lehet csinalni 🙂2007-05-10-18:32 #2104314Elore jelzem, hogy a scripteleshez nem ertek.
Azt viszont meg lehetne csinalni, hogy :
1. a bemeneti szamokat felvagni a pontoknal es mondegyik szamra vegrehajtani:
2. az adott szammal azonos nevu mappat letrehozni
3. ha pont kovetkezik, belepni a letrehozott mappaba es ugras a 2. pontraA kimenetet medig a letrehozott konyvtarstruktura bejarasa jelenene.
Nem tul egyszeru, de remelem meg lehet csinalni 🙂 -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz