Хелпикс

Главная

Контакты

Случайная статья





Задание 5.2. Поиск и замена в одномерном массиве



Задание 5.2. Поиск и замена в одномерном массиве

1. Дан массив, состоящий из n элементов. Назовём серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих элементов (длина серии может быть равна 1). Вставить перед каждой серией минимальный элемент массива.

2. Дан массив, состоящий из n элементов. Назовём серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих элементов (длина серии может быть равна 1). Поменять местами наименьшую последнюю и k-ю серии массива. Если таких серий в массиве меньше k, то вывести массив без изменений.

3. Дан массив, состоящий из n элементов, и число k (0<k<5, k<n). Осуществить циклический сдвиг элементов массива вправо на k позиций.

<!DOCTYPE html>
<html>
<head>
<meta charset= "utf-8">
<title></title>
</head>
<body>
<form method= "post">
<label>Введите последоватьельность</label>
<input type= "text" name= "row">
<label>Введите на сколько хотите сдвинуть</label>
<input type= "text" name= "k">
<input type= "submit">
</form>
<?php
$row = explode(" ", $_POST['row']);
$k = $_POST['k'];
for ($i = 1; $i <= $k; $i++) {
for ($j = 0; $j < (count($row) - 1); $j++) {
$row[$j] = $row[$j+1];
}
$row[count($row)] = 0;
}
var_dump($row);
?>
</body>
</html>

 

 

Задание 5.3. Алгоритмы сортировки одномерных массивов

1. Создайте массив, содержащий n различных случайных целых чисел. Содержимое массива сортируется по возрастанию, и после этого определяются минимальный и максимальный элементы массива.

<!DOCTYPE html>

<html>

<head>

   <meta charset="utf-8">

   <title></title>

</head>

<body>

   <form method = "post">

       <label>Введите размер массива(n)</label>

       <input type="text" name = "n"><br>

       <input type= "submit">

   </form>

<?php

$arr = array();

$n = $_POST['n'];

for ($x=0;$x<=$n;$x++) { $arr[]=rand(1,100); }

print_r($arr);

echo "<br>";

sort ($arr);  

print_r($arr);

echo "<br>";

$min = null;

$min_key = null;

$max = null;

$max_key = null;

foreach($arr as $k => $v)

{

if($v > $max or $max === null)

{

   $max = $v;

   $max_key = $k;

}

   

if($v < $min or $min === null)

{

   $min = $v;

   $min_key = $k;

}

}

echo "Min value: $min <br> Min key: $min_key <br>";

echo "Max value: $max <br> Max key: $max_key";

?>

</body>

</html>

2. Дан массив размера N. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют убывающую последовательность.

<!DOCTYPE html>

<html>

<head>

   <meta charset="utf-8">

   <title></title>

</head>

<body>

   <form method = "post">

       <label>Введите размер массива(n)</label>

       <input type="text" name = "n"><br>

       <input type= "submit">

   </form>

<?php

$arr = array();

$a = array();

$n = $_POST['n'];

for ($i = 0; $i < $n; $i++) { $a[$i]=rand(1,100); }

for ($j = 0; $j < $n; $j++) { $arr[$j] = $a[$j]; }

echo "<br>";

print_r($a);

echo "<br>";

rsort($a);

print_r($a);

echo "<br>";

for ($i = 0; $i < $n; $i++) {

for ($j = 0; $j < $n; $j++) {

if ($arr[$j] == $a[$i]) echo $j;

}

}

?>

</body>

</html>

3. В массиве 2n+1 различных элементов. Найдите средний элемент массива. Под средним элементом понимают такой, для которого в массиве n элементов больше его и n элементов меньше.

<!DOCTYPE html>

<html>

<head>

   <meta charset="utf-8">

   <title></title>

</head>

<body>

   <form method = "post">

       <label>Введите размер массива(n)</label>

       <input type="text" name = "n"><br>

       <input type= "submit">

   </form>

<?php

$arr = array();

$n = $_POST['n'];

$flag = false;

for ($x=0;$x<=2*$n+1;$x++) { $arr[]=rand(1,100); }

print_r($arr);

   echo "<br>";

   for ($i=0; $i<=$n;$i++) {

       for ($j=0; $j<=$n;$j++) {

           if ($arr[$i] > $arr[$j]) $more++;

           elseif ($arr[$i] < $arr[$j]) $less++;

       }

       if (($more == $n) & ($less == $n)) {

           $flag = true;

           $index = $i;

       }

   }

   if ($flag)

       echo "Средний элемент: $arr[$index]";

   else echo "Нет среднего элемента";

?>

</body>

</html>

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.