За последние 24 часа нас посетили 21555 программистов и 1027 роботов. Сейчас ищут 689 программистов ...

Задачки для горящих двоечников

Тема в разделе "Сделайте за меня", создана пользователем STALKER, 29 сен 2017.

  1. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Помогите пожалуйста. Допустим есть массив $a=array(1,4,0,6,0,6,0), как преобразовать массив так чтобы сначала были элементы равные нулю , а потом все подряд
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    просто отсортируй
     
  3. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
  4. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Спасибо
     
  5. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Помогите пожалуйста.
    В одномерном массиве, состоящем из n вещественных элементов, вычислить:

    минимальный элемент массива; сумму элементов массива, расположенных между первым и последним положительными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом — все остальные.

    Код вроде написал но он недочетами,помогите чем можете!!

    <?php
    $mas=$_POST['mas'];
    $lab3=explode("/", $mas);
    $min=min($lab3);
    $key=array_search($min, $lab3);
    for($i=0; $i<sizeof($lab3); $i++)
    {
    if($lab3[$i]>0)
    {
    $min1=$i;//находим первый положительный элемент
    break;
    }
    }
    for($i=0; $i<sizeof($lab3); $i++)
    {
    if($lab3[$i]>0)
    {
    $max1=$i;//находим поледний положительный элемент(индекс)

    }
    }
    for($i=$min1; $i<=$max1; $i++)
    {
    $summa+=$lab3[$i];
    // сумма элеметов массива, расположенных между первым
    // и последним положительными элементами
    }
    sort($lab3);//сортируем массив по возрастанию
    print_r($lab3);
    echo "<p>минимальный элемент массива:"."[".$key."]=>".$min;
    echo "<p>первый положительный элемент:"."[".$min1."]"."=>".$lab3[$min1];
    echo "<p>поледний положительный элемент:"."[".$max1."]"."=>".$lab3[$max1];
    echo "<p>сумма элеметов массива,
    расположенных между первым и последним положительными элементами==".$summa."
    ";
    print_r($lab3);
    ?>
     
  6. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    А как быть если в массиве будут отрицательные числа? он же сначала их выведет, а надо нули.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    у тебя вкус плохой об представлении порядочности
    -1 меньше нуля
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    PHP:
    1. $a = array(1,4,0,6,0,6,0);
    2. $tmp0 = [];
    3. $tmp1 = [];
    4. foreach( $a as $v ){
    5.   if( $v == 0 ){
    6.     $tmp0[] = $v;
    7.   }else{
    8.     $tmp1[] = $v;
    9.   }
    10. }
    11. $result = array_merge( $tmp0, $tmp1 ); // или $tmp0 + $tmp1
     
    STALKER нравится это.
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ему как раз и надо нули в начале

    пройди циклом по массиву, посчитай нули и удали их.
    если надо - можно скопить их в другой массив и удалить из того.
    один проход по массиву и задача решена
     
    STALKER нравится это.
  10. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Все сделал. Спасибо всем за помощь, особенно TeslaFeo и igordata помогли.


    PHP:
    1. <?php
    2.     $a=array(1,5,0,6,-4,7,0,-8,-4,0,4);
    3.     for($i=0; $i<count($a);$i++)
    4.     {
    5.         if($a[$i]==0)
    6.         {
    7.             $n[$i]=0;
    8.         }
    9.         else if($a[$i]>0)
    10.         {
    11.             $p[$i]=$a[$i];
    12.         }
    13.         else
    14.         {
    15.             $o[$i]=$a[$i];
    16.         }
    17. }
    18.     $s=array_merge($n, $p, $o);
    19. ?>
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    молодец! это отличный урок - обработка массивов. Умея обрабатывать массивы - можно обрабатывать массивы. =) А так как массивов везде дофига - это базовый навык в работе программиста.

    правда я предпочитаю цикл foreach
     
    STALKER нравится это.
  12. DeviceGod

    DeviceGod Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    4
    Симпатии:
    1
    Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

    Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
     
    STALKER нравится это.
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Автор, покажи свои наработки и скажи что конкретно не можешь сделать в этом задании, иначе тема будет перенесена в "Сделайте за меня".
     
  14. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Дана целочисленная прямоугольная матрица. Определить: сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; номера строк и столбцов всех седловых точек матицы.

    Примечание. Матрица А имеет седловую точку aij, если аij является минимальным элементом в i-й строке и максимальным в j-м столбце.
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Однако, вас тут уже двое. Слил все ваши ветки в одну. Сессия вроде не скоро, чего это вы понаплыли-то, вычислители целочисленных матриц?
     
  16. STALKER

    STALKER Новичок

    С нами с:
    29 сен 2017
    Сообщения:
    15
    Симпатии:
    0
    Нужно понять как это делается
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    берёшь учебник аль гебры; листаешь до матриц; читаешь, как там это делаешься, по шагам; переносишь это в код.

    Пройти по всем строкам или там ячейкам можно циклами. Учись работать с массивами.
     
    STALKER нравится это.