Fejtörő – „csak guruknak”…

Kezdőlap Fórumok Programozás Fejtörő – „csak guruknak”…

10 bejegyzés megtekintése - 1-10 / 121
  • Szerző
    Bejegyzés
  • #2104305
    xcut
    Felhasználó

      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));
      #2104306
      xcut
      Felhasználó

        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));
        #2104307
        uzsolt
        Felhasználó

          Majd 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.5

          sorból egy

          Code:
          1.1.3
          1.1.5
          1.2.3
          2.1.4

          sort 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.

          #2104308
          uzsolt
          Felhasználó

            Majd 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.5

            sorból egy

            Code:
            1.1.3
            1.1.5
            1.2.3
            2.1.4

            sort 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.

            #2104309
            xcut
            Felhasználó
              Code:
              mkdir tmpdir
              for i in $verziok; do touch tmpdir/$i; done
              $rendezett=`ls tmpdir/`
              rm -r tmpdir
              #2104310
              xcut
              Felhasználó
                Code:
                mkdir tmpdir
                for i in $verziok; do touch tmpdir/$i; done
                $rendezett=`ls tmpdir/`
                rm -r tmpdir
                #2104311
                uzsolt
                Felhasználó

                  Nem 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)

                  #2104312
                  uzsolt
                  Felhasználó

                    Nem 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)

                    #2104313
                    zoltan22
                    Felhasználó

                      Elore 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. pontra

                      A kimenetet medig a letrehozott konyvtarstruktura bejarasa jelenene.
                      Nem tul egyszeru, de remelem meg lehet csinalni 🙂

                      #2104314
                      zoltan22
                      Felhasználó

                        Elore 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. pontra

                        A kimenetet medig a letrehozott konyvtarstruktura bejarasa jelenene.
                        Nem tul egyszeru, de remelem meg lehet csinalni 🙂

                      10 bejegyzés megtekintése - 1-10 / 121
                      • Be kell jelentkezni a hozzászóláshoz.