За последние 24 часа нас посетили 17625 программистов и 1724 робота. Сейчас ищут 1848 программистов ...

Помогите исправить.

Тема в разделе "PHP для новичков", создана пользователем Naruto, 22 дек 2017.

  1. Naruto

    Naruto Новичок

    С нами с:
    19 дек 2017
    Сообщения:
    4
    Симпатии:
    0
    Помогите пожалуйста исправить. В PHP плохо понимаю поэтому код и не работает.
    В одномерном массиве, состоящем из n вещественных элементов, вычислить:
    количество элементов массива, больших c; произведение элементов массива, расположенных после максимального по мс дулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными). Заранее спасибо.

    <?php
    $mas=$_GET ['mas'];
    $arr=explode(' ',$mas);
    $c=$_GET ['c'];
    $summa=0;
    foreach($arr as $number){
    if($number<$с)
    echo 'Число '.$number.' больше '.$с.<br>';
    $min[0] = $c[0];
    $min[1] = 0;
    for($i = 0; $i < count($m); $i++){
    }
    if(number($m[$i]) < number($min[0])){
    $min[0] = $m[$i];
    $min[1] = $i;
    }
    }
    $res = 1;
    if(number($min[1]) < number($max[1])){
    $start_index = $min[1];
    $end_index = $max[1];
    } else {
    $start_index = $max[1];
    $end_index = $min[1];
    }
    for($i = $start_index+1; $i < $end_index; $i++){
    $res *= $m[$i];
    }
    echo '</br>Произведение элементов массива, расположенных после максимального по мс дулю элемента.: '."$res";
    rsort($m);
    foreach ($m as $key => $val) {
    echo '</br>'."$key = $val\n";
    }
    ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    700руб
     
    Boothooz нравится это.
  3. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    PHP:
    1. <?php
    2.  
    3. class realCount {
    4.  
    5.     public $n = 10; //количество элементов;
    6.     public $c = 5; //цифра от, от которой считаются большие элементы;
    7.     public $typenum = 'real'; //тип чисел в массиве 'real' - дробные (вещественные), 'int' - целые;
    8.     public $min = 1; //минимальное целое число в массиве (до запятой);
    9.     public $max = 50; //максимально целое число в массиве (до запятой)
    10.     public $minfract = 1; //минимальное число в дробной части (после запятой);
    11.     public $maxfract = 99; //максимальное число в дробной части (после запятой);
    12.    
    13.     //---------
    14.    
    15.     private $numarray = []; //массив с числами
    16.    
    17.  
    18.     /* генератор массива */
    19.     private function genArray() {
    20.  
    21.         if ($this->typenum === 'real') {
    22.             for($i=0; $i < $this->n; $i++) {
    23.                 $sign = (rand(1,2) == 1) ? '' : '-';
    24.                 $this->numarray[] = $sign.rand($this->min,$this->max).'.'.rand($this->minfract,$this->maxfract);
    25.             }
    26.         }
    27.         else if ($this->typenum === 'int') {
    28.             for($i=0; $i < $this->n; $i++) {
    29.                 $sign = (rand(1,2) == 1) ? '' : '-';
    30.                 $this->numarray[] = $sign.rand($this->min,$this->max);
    31.             }
    32.         }
    33.        
    34.         return $this->numarray;
    35.     }
    36.     /* подсчет количества элементов, которые больше чем C*/
    37.     private function countLarge() {
    38.         $count = 0;
    39.         foreach ($this->numarray as $num) {
    40.             if($num > $this->c) { $count++; };
    41.         }
    42.         return $count;
    43.     }
    44.    
    45.     /* произведение элементов массива, расположенных после максимального по модулю элемента */
    46.     private function multi() {
    47.         $res = [];
    48.        
    49.         foreach ($this->numarray as $key => $num) {
    50.             if(abs($num) > $res['num']) {
    51.                 $res['num'] = abs($num);
    52.                 $res['key'] = $key;
    53.             }
    54.         }
    55.        
    56.         $array = array_slice($this->numarray,$res['key']+1);
    57.        
    58.         $multi = array_product($array);
    59.        
    60.         return [$res['num'],$multi];
    61.     }
    62.     /* сортировка массива от отрицательного к положительному */
    63.     private function sortArr() {
    64.         $array = $this->numarray;
    65.         sort($array);
    66.         return $array;
    67.     }
    68.    
    69.     public function run() {
    70.         $this->genArray();
    71.         $count = $this->countLarge();
    72.         $multi = $this->multi();
    73.         $array = $this->numarray;
    74.         $sort = $this->sortArr();
    75.         return [$array,$count,$multi,$sort];
    76.     }
    77. }
    78.  
    79. $a = new realCount;
    80.  
    81. $arr = $a->run();
    82. ?>
    83. <DOCTYPE html>
    84. <html>
    85.     <head>
    86.         <style>
    87.             .wrapper {
    88.                 width: 400px;
    89.                 padding: 25px;
    90.                 margin: 0 auto;
    91.                 background-color: #fffaaa;
    92.             }
    93.             h3 {
    94.                 margin-top:0;
    95.             }
    96.         </style>
    97.     </head>
    98.     <body>
    99.         <div class="wrapper">
    100.             <h3>Массив чисел:</h3>
    101.             <?php
    102.             foreach ($arr[0] as $value) {
    103.                 echo "<p>$value</p>";
    104.             }
    105.             ?>
    106.             <h3>Количество элементов больших чем <?=$a->c?>:</h3>
    107.             <p><?=$arr[1]?></p>
    108.             <h3>Максимальное число по модулю:</h3>
    109.             <p><?=$arr[2][0]?></p>
    110.             <h3>Произведение элементов массива, расположенных после максимального по модулю элемента:</h3>
    111.             <p><?=$arr[2][1]?></p>
    112.             <h3>Отсортированный массив:</h3>
    113.             <?php
    114.                 foreach ($arr[3] as $values) {
    115.                     echo "<p>$values</p>";
    116.                 }
    117.             ?>
    118.         </div>
    119.     </body>
    120. </html>