Advertisement
machalda

IPI

Mar 18th, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.75 KB | None | 0 0
  1. <?php
  2. print "\nDomaci ukol do IPI, Jakub Machalicky, xmacha28\n\n";
  3.  
  4.  
  5.  
  6. $infile = "";
  7. $outfile = "";
  8. $infile = $argv[1];
  9. $vysledek="";
  10. $out;
  11.  
  12. if($infile == "")
  13. {
  14.     print "nebyl zadan vstupni soubor\n";
  15.     print "Soubor se zadava jako parametr napr tedy ipi.exe soubor.txt\n";
  16.     print "ale to mi vubec nevadi a vytvarim si sam test.txt\n\n";
  17.     $test = "CCTGTATTAGCAGCAGATTCGATTAGCTTTACAACAATTCAATAAAATAGCTTCGCGCTAA\nATTTTTAACTTTTCTCTGTCGTCGCACAATCGACTTTCTCTGTTTTCTTGGGTTTACCGGAA\nTTGTTTCTGCTGCGATGAGGTATTGCTCGTCAGCCTGAGGCTGAAAATAAAATCCGTGGT\nCACACCCAATAAGTTAGAGAGAGTACTTTGACTTGGAGCTGGAGGAATTTGACATAGTCGAT\nTCTTCTCCAAGACGCATCCACGTGAACCGTTGTAACTATGTTCTGTGC\nCCACACCAAAAAAACTTTCCACGTGAACCGAAAACGAAAGTCTTTGGTTTTAATCAATAA\nGTGCTCTCTTCTCGGAGAGAGAAGGTGGGCTGCTTGTCTGCCGATGTACTTTATTAAATCCAATAA\nCCACACCAAAAAAACTTTCCACGTGTGAACTATACTCCAAAAACGAAGTATTGGTTTATCATAA\nTCTGAAAAGTGCAAAGAACGATGATGATGATGATAGAGGAACCTGAGCAGCCATGTCTGAACCTATAGC\nGTATTGGTCGTCGTGCGACTAAATTAGGTAAAAAAGTAGTTCTAAGAGATTTTGATGATTCAATGCAAAGTTCTATTAATCGTTCAATTG\n";
  18.     $newfile2 = fopen('test.txt', "w") or die("Nejde vytvorit test soubor a nevim proc");
  19.     fwrite($newfile2, $test);
  20.     fclose($newfile2);
  21.     $infile = "test.txt";
  22. }
  23.    
  24.  
  25. $vstup = file_get_contents($infile, true);
  26. $vstup = explode("\n", $vstup);
  27. $GLOBALS['vysledek'] = "";
  28.  
  29. function zvyraznit_vysledek($vstup){
  30. $prvni = "";
  31. $druhy = "";
  32. $treti = "";
  33.  
  34.     for($i=0; $i<count($vstup); $i++){
  35.         if($vstup[$i]!=""){
  36.             if(strpos($vstup[$i], $GLOBALS['vysledek']) === false)
  37.             {
  38.                 echo "   ".strtolower($vstup[$i])."\n";
  39.                 $GLOBALS['out'] .= strtolower($vstup[$i])."\n";
  40.             }
  41.             else{
  42.                 $n = strpos($vstup[$i], $GLOBALS['vysledek']);
  43.  
  44.                 $prvni = substr($vstup[$i] ,0,$n);
  45.                 $druhy = substr($vstup[$i], $n, strlen($GLOBALS['vysledek']));
  46.                 $treti = substr($vstup[$i], strlen($prvni) + strlen($GLOBALS['vysledek']),strlen($vstup[$i]) + strlen($prvni) + strlen($druhy));
  47.  
  48.                 echo "   ".strtolower($prvni)." => ".strtoupper($druhy)." <= ".strtolower($treti)."\n";
  49.                 $GLOBALS['out'] .= strtolower($prvni)." => ".strtoupper($druhy)." <= ".strtolower($treti)."\n";
  50.             }
  51.         }
  52.     }
  53.     echo "\n\nNejdelsi sekvence: ".$GLOBALS['vysledek']."\n";
  54. }
  55. function hledej2($co, $kdee){
  56.     $maxi = "";
  57.     $pocStr = $co;
  58.     $pracStr = $pocStr;
  59.     $kde = $kdee;
  60.     if($pocStr!=$kde){
  61.         while (strlen($pocStr)!=1)
  62.         {
  63.             if(strpos($kde, $pracStr) === false)
  64.             {
  65.                 $pracStr = substr($pracStr, 0, strlen($pracStr)-1);
  66.             }
  67.             else
  68.             {
  69.  
  70.                 if(strlen($pracStr) > strlen($maxi))
  71.                 {
  72.  
  73.                     $maxi=$pracStr;
  74.                 }
  75.                 $pracStr = substr($pracStr, 0, strlen($pracStr)-1);
  76.             }
  77.  
  78.             if(strlen($pracStr)==1)
  79.             {
  80.                 $pocStr = substr($pocStr, 1, strlen($pocStr)-1);
  81.                 $pracStr = $pocStr;
  82.             }
  83.         }
  84.     }
  85.     return $maxi;
  86. }
  87.  
  88. function hledej($vstup = array()){
  89.     $pom = "";
  90.     for($i=0; $i<count($vstup); $i++){
  91.         if($vstup[$i]!=""){
  92.             for($j=0; $j<count($vstup); $j++){
  93.                 if($vstup[$j]!=""){
  94.                     $pom = hledej2($vstup[$i],$vstup[$j]);
  95.                     if(strlen($pom) > strlen($GLOBALS['vysledek'])){
  96.                         $GLOBALS['vysledek']=$pom;
  97.                     }
  98.                 }
  99.             }
  100.         }
  101.     }
  102. }
  103.  
  104.  
  105.  
  106.  
  107. $newfile = fopen($infile.'_output.txt', "w") or die("Nejde vytvorit vystupni soubor a nevim proc");
  108. $outfile = $infile.'_output.txt';
  109. hledej($vstup);
  110. zvyraznit_vysledek($vstup);
  111. fwrite($newfile, "\n\nNejdelsi sekvence: ".$vysledek."\n");
  112. fwrite($newfile, "\nDomaci ukol do IPI, Jakub Machalicky, xmacha28\n\n\n");
  113. fwrite($newfile, $out);
  114. fclose($newfile);
  115.  
  116. print "Jo a taky je vysledek ulozen do souboru $outfile!\n";
  117. system("pause");
  118. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement