The OpenNET Project / Index page

[ ОПЧПУФЙ /+++ | ЖПТХН | ФЕЗЙ | ]

лБФБМПЗ ДПЛХНЕОФБГЙЙ / тБЪДЕМ "Perl" / пЗМБЧМЕОЙЕ ДПЛХНЕОФБ

тркхм тр хжетепк хрютвдепкл хнрю ю тфеднргепкуй

Явдвав, хденвжы тркхмрюкм ажрчэ хрфжкфрювн феяиныжвжэ тр фенеювпжпрхжк, кнк, ажр жр-ге хворе, рзепкювн трйргехжы, хжетепы рдкпвмрюрхжк хнрю.

Шжи явдваи чрнее оепее февнкяиеж тфкюедеппэл пкге хмфктж:

#!/usr/bin/perl -w
use locale;

%oo=("чидеж"=>1, "вцфкмв"=>1, "явюжфв"=>1);

$b="вцфкмв вцфкмв чидеж вцфкмв явюжфв";
$o="вцфкмв чидеж юаефв яваео ажр-жр";
$tw="вцфкмв печидеж юаефв чидеж явюжфв";
$tb="внухмв внухмв чидеж чидеж чидеж хеърдпу";

@m=($b, $o, $tb, $tw); rrand(\@m);
print join "\n", @m,"\n";

for $i(0 .. $#m){
  $h{$i}{$1}++ while $m[$i]=~m!((\w[\w-]*){4,30})!g;
  $vr{$i}=$m[$i];
}

for $r(keys %h){print "\n"; 
  my (@ee, $u, $trr);
  for $n(keys %{$h{$r}}){
    do{
      $t = join " " => $vr{$r};
      $u+=1;
      push @ee => $h{$r}{$n};
    } if exists $oo{$n};
  } 
  print "$t ",$u + $ee[0]-1,"\n";
}

sub rrand{
  my $m = shift; my $i;
  for($i=@$m; --$i;){
    my $j = int rand($i+1);
    net if $i==$j;
    @$m[$i,$j] = @$m[$j,$i]
  }
}

ехжы мвмрл-жр жемхж ю тефеоеппвй $b,$o,$tw,$tb, явърпуежху юхе ю овххкю. Дну ржнвдмк ткщежху трдтфръфвоов rrand(), мржрфву тефехжвюнуеж хниавпэо рчфвяро шнеоепжэ овххкюв. Двнее кдеж зкмн, трдхакжэювбькл авхжржэ рдкпвмрюэй хнрю ю тефеоеппэй к явпрхуькл шжк авхжржэ ю йещ йещел. Ю йеще йещел 1(ж.м. пииоефвзку шнеоепжрю овххкюв чэнв хниавпэл рчфвяро кяоепепв, жр идрчпр рчфвьвжыху аефея проеф овххкюв) хрдефгвжху тфедтрнргко дну тефеоеппрл $b жвмке двппэе:

     $b = "вцфкмв вцфкмв чидеж вцфкмв явюжфв";

     $h{1}=(
            "вцфкмв" => 3,
            "чидеж" => 1,
            "явюжфв" => 1
           ); 

ж.е. хнрюр вцфкмв тр авхжрже итржфечнепку ю жфк фвяв чрныще ю цвлне, ажр двеж еои чрныщке щвпхэ юэнеяжк ю хткхрм тефэй феяиныжвжрю. Двнее хнедибж хнрюв чидеж к явюжфв, мржрфэе жвм-ге къфвбж пеовнрювгпиб фрны ю трдпужкк ххэнмк пвюефй кя феяиныжвжрю тркхмрюрър явтфрхв. Двнее ю зкмне рчсуюнуежху йещ(явдвав чэнв хденвжы, в пе твоужы хшмрпрокжы), мржрфэл чидеж юэюрдкжы феяиныжвжэ явтфрхв.

Двнее кдеж зкмн:

     for $r(keys %h){print "\n";
       my (@ee, $u, $trr);
       for $n(keys %{$h{$r}}){
         do{
           $t = join " " => $vr{$r};
           $u++;
           push @ee => $h{$r}{$n};
         } if exists $oo{$n};
       } 
       print "$t ",$u + $ee[0]-1,"\n";
     }

явтфвщкювео акхнеппре пвяювпке йещв ю тефеоеппиб $r, хакжэювео х еЈ трорьыб йещк йещел. Ядехы ципмзкел exists февнкярювп тркхм рчькй мнбаел ю дюий йещвй: ю йеще, трхжитвбьео пв ююрд, к жемиьео тр щвъи зкмнв йеще йещел. Ехнк кпцрфовзку хрдефгкжху ю пвавныпро южрфро йеще %vr, жр явтфвщкювео еЈ $vr{$r}. Хжфрамв $u++ ржюеавеж яв мрнкаехжюр юйргдепкл юхей хнрю, явдвппэй ю явтфрхе, ю кхмроиб хжфрми(цвлн). Дртихжко пв юйрде цфвяв "чидеж вцфкмв явюжфв", ехнк йржу чэ рдпр хнрюр кя шжрл цфвяэ хрютвнр хр хнрюро ю раефедпрл хжфрме(юеды кяпвавныпр хжфрмв чэнв трчкжв пв авхжржпэл йещ) жр нрмвныпву тефеоеппву $u июенкакж хюре япваепке пв едкпками. Ехнк дюв хнрюв ю хжфрме к ю явтфрхе рдкпвмрюэ, жр $u=2, ехнк жфк - $u=3 к жвм двнее, хнрю ю явтфрхе оргеж чэжы нбчре мрнкаехжюр. Двнее кдеж хжфрамв

     push @ee => $h{$r}{$n};

мржрфву явпрхкж авхжржэ хнрю(3,1,1 мвм чэнр юэще ю тфкоефе) ю жемиьел хжфрме. Двныще кдеж хвов exists к трхне пеЈ фвячкфвеоху х юехро трюжрфубькйху хнрю к юехро трнпэй хрютвдепкл. Ж.е. дрнгпр чэжы жвм, ажрчэ трнпре хрютвдепке цфвяэ коенр чрныщее япваепке, пегенк аео петрнпре хрютвдепке + твфв трюжрфрю. Пр ципмзку цедеж хечу тр йкжфрои, дртихжко, ехнк пигпр пвлжк хтезквнкякфрювппиб кпцрфовзкб жктв "Йещ йещел йещел йещел йещел овххкюрю", жр юех трюжрфепкл хнрю чидеж чрныще, ж.е. юмнвд анепв $ee[0]-1(фвяпкзв ю едкпкзвй пв хниавл петфедпвоефеппрър трюжрфв) чрныще, аео $u. Ю жр-ге юфеоу авхжржв трюжрфепкл оргеж явтфрхжр юэюехжк пвюефй ххэнми х хнрюро, мржрфрои трхюуьеп жемхж. Ж.е. пемкл чвнвпх дну цфвя, трюжрфепкл к рдкпрапэй хнрю.


рБТФОЈТЩ:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
иПУФЙОЗ:

ъБЛМБДЛЙ ОБ УБКФЕ
рТПУМЕДЙФШ ЪБ УФТБОЙГЕК
Created 1996-2024 by Maxim Chirkov
дПВБЧЙФШ, рПДДЕТЦБФШ, чЕВНБУФЕТХ