Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 73

Массив: По нажатию кнопок «Вверх» и «Вниз» сортировать массив по возрастанию и убыванию соответственно.

18.04.2013, 23:25. Показов 3543. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сгенерировать двумерный массив, заполнив его случайными числами* в диапазоне от 1 до 100. По нажатию кнопок «Вверх» и «Вниз» сортировать массив по возрастанию и убыванию соответственно. Вывести исходный и отсортированный массивы в виде таблиц,
используя стили (тонкие сплошные линии черного цвета). Предусмотреть кнопку «Сброс» для повторной генерации массива.

Так звучит задание.

Вот что я сделал. (генератор находится во втором файле который включается в этом коде).
Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
!doctype html> 
<html lang="ru"> 
<head> 
<title>Massive 2</title> 
<meta charset="utf8"> 
<style> 
table { border: 1px solid olive; width: 350px; border-collapse: collapse} 
td {padding: 3px; border: 1px solid olive; } 
tr:first-child td {font-weight: bold;} 
tr { text-align: center; } 
</style> 
</head> 
<body> 
<form action="lab5_21.php" method="post" style="float:center">
<fieldset>
<legend>Сортировка
<select name="r1">
<option value="Up">Up</option>
<option value="Down">Down</option>
</fieldset><br/>
<input type="submit" name=btn2 value="Sort">
</legend>
<input type=submit name=btn value='Generate'>
</form>
<?
if(isset($_POST['btn'])) {
require_once "lab5_22.php"; 
?>
<table> 
<tr><td>Mass</td></tr> 
<?php
//print_r($rand_array);
//вывод элементов массива с ключами 
 
foreach ($rand_array as $key=>$value) 
 { 
  echo "<tr ><td>".$value."</td></tr>"; 
 } 
 echo "<br>";
 
 $new = $rand_array;
 
?>
</table> 
<?php
}
if(isset($_POST['btn2'])) {
switch ($_POST["r1"]) 
    {
    case "Down": 
    ?>
    <table> 
    <tr><td>Mass 2</td></tr>
    <?php
sort($new);
//print_r($rand_array);
foreach ($new as $key=>$value) 
 { 
  echo "<tr ><td>".$value."</td></tr>"; 
 } 
 echo "<br>";
?>
</table>
<?php
    break;
 
    case "Up": 
?>
<table> 
<tr><td>Mass 3</td></tr> 
<?php
rsort($rand_array);
//print_r($rand_array);
foreach ($rand_array as $key=>$value) 
 { 
  echo "<tr ><td>".$value."</td></tr>"; 
 } 
 echo "<br>";
 ?>
</table> 
<?php
break;
}
}; 
?>
</table> 
</body> 
</html>
Генератор:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!doctype html> 
<html lang="ru"> 
<head> 
<title>Задание 1</title> 
<meta charset="utf8"> 
<style> 
table { border: 1px solid olive; width: 350px; border-collapse: collapse} 
td {padding: 3px; border: 1px solid olive; } 
tr:first-child td {font-weight: bold;} 
tr { text-align: center; } 
</style> 
</head> 
<body> 
<?php
/*
  Функция генерирует массив заполненный случайными числами
  param int limit - количество элементов массива
  param int min - минимальное значение элемента массива
  param int max - максимальное значение
  return array
 */
function array_fill_rand($limit, $min=false, $max=false)
{
    $limit = (int)$limit;
    $array = array();
    
    if ($min !== false && $max !== false)
    {
        $min = (int)$min;
        $max = (int)$max;
        for ($i=0; $i<$limit; $i++)
        {
            $array[$i] = rand($min, $max);
        }
    }
    else
    {
        for ($i=0; $i<$limit; $i++)
        {
            $array[$i] = rand();
        }
    }
    
    return $array;
}
//echo '<pre>';
?>
 
<?php
$rand_array = array_fill_rand(100, 0, 100);
?>
</table> 
</body> 
</html>
Суть в том что при генерации, он нормально все делает, но как только дело доходит до сортировки то тут сразу проблемы. Либо потеря данных массива, либо перерасчет оригинала, либо оригинал скрывается и открывается сортировка, а надо чтобы высвечивалось и то и другое.

Помогите товарищи. Я уже неделю мучаюсь, а ума не прибавилось.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2013, 23:25
Ответы с готовыми решениями:

Сортировать массив по убыванию. Размерность произвольная формировать массив случайными числами
Помогите решить эти 3 простые задачи, которые я не мог. :( 3. Сортировать массив по убыванию. Размерность произвольная формировать...

Сортировать массив по убыванию
у меня есть программа, которая должна: 1)спрашивать длину массива 2)спрашивать каждое число массива 3)сортировать массив по убыванию,...

Сортировать массив по убыванию
окей, можете помочь с заданиями? Без Char или String только массивы 1) Создать массив целых чисел из 8 элементов, заполнить массив с...

1
26 / 16 / 2
Регистрация: 13.03.2013
Сообщений: 36
19.04.2013, 19:23
lab5_21.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!doctype html>
<html lang="ru">
<head>
    <title>Massive 2</title>
    <meta charset="utf8">
    <style>
        table { border: 1px solid olive; width: 350px; border-collapse: collapse}
        td {padding: 3px; border: 1px solid olive; }
        tr:first-child td {font-weight: bold;}
        tr { text-align: center; }
    </style>
</head>
<body>
<form action="lab5_21.php" method="post">
    <fieldset>
        <legend>Сортировка
            <select name="r1">
                <option value="Up">Up</option>
                <option value="Down">Down</option>
            </select>
            <input type="submit" name=btn2 value="Sort">
        </legend>
    </fieldset>
    <input type=submit name=btn value='Generate'>
<?
if(isset($_POST['btn'])) {
    require_once "lab5_22.php";
    $ser=serialize($rand_array);
    ?>
        <input type="hidden" name="ser" value="<?=$ser?>">
    </form>
    <table>
        <tr><td>Mass</td></tr>
        <?php
        //print_r($rand_array);
        //вывод элементов массива с ключами
 
        foreach ($rand_array as $value)
        {
            echo "<tr ><td>".$value."</td></tr>";
        }
        echo "<br>";
        ?>
    </table>
<?php
}
elseif(isset($_POST['btn2'])&&isset($_POST['ser'])) {
    $ser=$_POST['ser'];
    $new=unserialize($ser);
    echo "<input type='hidden' name='ser' value='$ser'>
    </form>";
    switch ($_POST["r1"])
    {
        case "Down":
            ?>
            <table>
                <tr><td>Mass 2</td></tr>
                <?php
                sort($new);
                //print_r($rand_array);
                foreach ($new as $key=>$value)
                {
                    echo "<tr ><td>".$value."</td></tr>";
                }
                echo "<br>";
                ?>
            </table>
            <?php
            break;
 
        case "Up":
            ?>
            <table>
                <tr><td>Mass 3</td></tr>
                <?php
                rsort($new);
                //print_r($rand_array);
                foreach ($new as $value)
                {
                    echo "<tr ><td>".$value."</td></tr>";
                }
                echo "<br>";
                ?>
            </table>
            <?php
            break;
    }
}
else echo "</form>";
?>
</body>
</html>
lab5_22.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
/*
  Функция генерирует массив заполненный случайными числами
  param int limit - количество элементов массива
  param int min - минимальное значение элемента массива
  param int max - максимальное значение
  return array
 */
function array_fill_rand($limit, $min=false, $max=false)
{
    $limit = (int)$limit;
    $array = array();
 
    if ($min !== false && $max !== false)
    {
        $min = (int)$min;
        $max = (int)$max;
        for ($i=0; $i<$limit; $i++)
        {
            $array[$i] = rand($min, $max);
        }
    }
    else
    {
        for ($i=0; $i<$limit; $i++)
        {
            $array[$i] = rand();
        }
    }
 
    return $array;
}
//echo '<pre>';
?>
 
<?php
$rand_array = array_fill_rand(100, 0, 100);
?>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2013, 19:23
Помогаю со студенческими работами здесь

Отсортировать массив 8 строк и 8 столбцов, строки вверх и вниз
Нужно отсортировать массив 8 строк и 8 столбцов, строки вверх и вниз, столбцы вверх вниз и по диагонали, массив 12345678 ...

Массив: упорядочить массив по желанию пользователя по возрастанию или убыванию
Одномерный массив, заполненый целыми случайными числами упорядочить по желанию пользователя по возрастанию или убыванию. Вывести массив на...

Разделить массив на два отдельных массива, отсортировать один массив по убыванию, а второй - по возрастанию
Помогите пожалуйста. Дан массив из 20 целых чисел, расположенных в случайном порядке. Половина чисел являются четными, половина - нет. ...

Дан действительный массив А(п). Упорядочить массив по убыванию, по возрастанию
Дан действительный массив А(п). Упорядочить массив по убыванию, по возрастанию

Сортировать по убыванию одномерный массив
Написать программу, которая сортирует по убыванию введенный с клавиатуры одномерный массив. Заранее спасибо!Понимаю что лёгкое но котёл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru