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

Прокомментируйте алгоритм и принцип работы

25.12.2012, 23:55. Показов 3081. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дорогие форумчане опишите пожалуйста алгоритм скрипта и принцип работы, буду очень благодарен

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
<?php
error_reporting(-1);
$message = '';
 
function resortmass(array $data)
{
    $sort = array();
    while (!empty($data)) {
        $max = max($data);
        array_push($sort, $max);
        unset($data[array_search($max, $data)]);
    }
    return $sort;
}
function sortmass(array $data)
{
    $sort = array();
    while (!empty($data)) {
        $max = max($data);
        array_unshift($sort, $max);
        unset($data[array_search($max, $data)]);
    }
    return $sort;
}
 
 
 
if (isset($_POST['reset'])){
    header('location:' . $_SERVER['PHP_SELF']);
 
} elseif (isset($_POST['submit'])){
    $ar  = (int) $_POST['ar'];
    $min = (int) $_POST['min'];
    $max = (int) $_POST['max'];
    $status = (int) $_POST['status'];
    
    $message .= empty($ar) ? 'длина массива не введена! <br />' : '';
    $message .= ($min > $max) ? 'минимум больше максимума! <br />' : '';
    
    if (empty($message)){
       $array = range($min, $max);
        
        $array = ($status == 1) ? sortmass($array) : resortmass($array);
 
        $str_sort = implode(', ', $array);
        
            $array = array();
    for ($i = 0; $i < $ar; $i ++)
    $array[] = mt_rand($min, $max);
    $str_rand = implode(', ', $array);
    }
}
?>
<form method ="POST" action="">
<table>
    <tr><td><p> Введите значение длины массива</p></td></tr>
    <tr><td><input name='ar' size='12' type='text' value="<?=isset($ar) ? $ar : 1; ?>" /></td></tr>
    <tr><td><p>Введите случайное минимальное число</p></td></tr>
    <tr><td><input name='min' size='12' type='text' value="<?=isset($min) ? $min : 0; ?>" /></td></tr>
    <tr><td> Введите случайное максимальное число </td></tr>
    <tr><td><input name='max' size='12' type='text' value="<?=isset($max) ? $max : 0; ?>" /></td></tr>
    <tr><td>  </td></tr>
    <tr><td> <input type='radio' name='status' value='1' <?=(!isset($status) || $status == 1) ? 'checked ' : '';?>/> по возрастанию </td></tr>
    <tr><td> <input type='radio' name='status' value='2' <?=(isset($status) && $status == 2) ? 'checked ' : '';?>/>по убыванию </td></tr>
    <tr><td><input type='submit' name='submit' value='отсортировать' />
    <input type='submit' name="reset" value='Очистить' /></td></tr>
    <tr><td></td></tr>
</table>
</form>
<?=$message; ?>
<?php if (isset($str_rand, $str_sort)): ?> 
    <p>Массив :</p>
    <p><?=$str_rand; ?></p>
    <p>Отсортированный :</p>
    <p><?=$str_sort; ?></p>
<?php endif; ?>
Добавлено через 13 часов 31 минуту
никто не сможет помочь?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2012, 23:55
Ответы с готовыми решениями:

Алгоритм записи в лог файл, принцип работы?
Интересует процесс записи в лог файл какой вариант лучше? Просьба обосновать ответ Вариант 1: Открыть в начале работы пограммы...

Cобытийность. Принцип использования и принцип работы событий в jQ и GCT
Добрый день. Подготавливаюсь к собеседованию по чеклисту и не могу найти ответ на вопрос: событийность. Принцип использования и принцип...

Прокомментируйте код работы со списком
прокомментируйте пожалуйста буквально каждую строчку. Сформировать двунаправленный список.Добавить в него элемент с заданным...

27
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 01:15
Пожалуйста: бредоскрипт (можно заменить словом "странный" ), писался человеком, который забыл (или не знал), что есть функции типа sort(). И кстати, он неверно работает по-моему (но не проверял) - выводит отсортированный массив один, а изначальный массив совсем с другими данными (если вообще выводит) .
0
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 01:31  [ТС]
он работает правильно, знаю то что sort надо использовать ну в моем случае sort надо было заменить что и сделано в этом скрипте теперь осталось просто описать алгоритм, по сколько знаю что тут сидят хорошие программисты поэтому прошу помощи может кто поможет описать алгоритм данного скрипта (пусть даже странного)

P.s в данном коде sortmass - работает (по возрастанию)
а rsortmass - работает по убыванию (по убыванию)
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 01:33
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от fa2m Посмотреть сообщение
Пожалуйста: бредоскрипт (можно заменить словом "странный" ), писался человеком, который забыл (или не знал), что есть функции типа sort(). И кстати, он неверно работает по-моему (но не проверял) - выводит отсортированный массив один, а изначальный массив совсем с другими данными (если вообще выводит) .
этот скрипт писал я, но не потому что я не знаю функцию sort а потому что меня попросили заменить sort и rsort на самописные функции, для задания в институте
3
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 01:38  [ТС]
alpex это ты писал для меня так как я был под ником wolf))) прост не смог с него зайти вот и регнул другой (на время) alpex сможешь помочь описать алгоритм?, прост не пойму как алгоритм написать) так как пока что учусь php
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 01:39
Цитата Сообщение от alpex Посмотреть сообщение
этот скрипт писал я, но не потому что я не знаю функцию sort а потому что меня попросили заменить sort и rsort на самописные функции, для задания в институте
В Одессе Вам бы сказали: Уважаемый, так шо вы мне тут голову морочите" )))))))))) Объясните человеку, что Вы написали ))))
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 01:42
PHP
1
2
3
4
5
6
7
8
9
10
function resortmass(array $data)
{
    $sort = array(); // создаем пустой массив
    while (!empty($data)) { // пока массив $data не будет пустой делаем блок до закрывающей фигурной скобки
        $max = max($data); // заносим в переменную $max максимальное значение массива
        array_push($sort, $max); // добавляем в конец массива $sort значение переменной $max 
        unset($data[array_search($max, $data)]); // удаляем из массива $data значение соответствующее ключу который возвращает array_search(значение индекса массива $data который соответсвтвует значению $max)  
    } // конец блока while 
    return $sort; // возвращаем массив
}
Добавлено через 1 минуту
вторая функция точно также только за исключением того что мы используем array_unshift , который вставляет значение не в конец массива, как array_push , а в начало
1
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 01:42  [ТС]
а весь скрипт кто сможет описать? кому не сложно))))
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 01:57
Цитата Сообщение от sever777 Посмотреть сообщение
а весь скрипт кто сможет описать? кому не сложно))))
Йолы-палы ))) Какой именно фрагмент Вам не ясен, если всё, то здесь не объяснять, а ссылку на кукую-нибудь книгу для новичков давать нужно!
P.S. Если хотите действительно изучить язык - то разбирайтесь сами, сайт php.net доступен и на нём можно найти описание любой функции. А если это для задания в универе, то получите свой тройбан и спите спокойно!
P.S.S. И радуйтесь, что у Вас вышло не так как в этой ветке Разработать сценарий для вычисления факториала введенного числа
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 02:02
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
if (isset($_POST['reset'])){ // если нажата кнопка reset
    header('location:' . $_SERVER['PHP_SELF']); // делаем редирект и соответсвенно стираются данные массива POST
 
} elseif (isset($_POST['submit'])){ // если нажата кнопка submit делаем следующий блок
    $ar  = (int) $_POST['ar']; // создаем переменные и заносим в них coondtncnde.obt значения массива POST предварительно приведя к типу integer,
    $min = (int) $_POST['min']; // что бы ничего кроме чисел не осталось,
    $max = (int) $_POST['max']; // получается защита от хакерских атак
    $status = (int) $_POST['status'];
    
    $message .= empty($ar) ? 'длина массива не введена! <br />' : ''; // если не введены необходимые данные заносим в переменную $message сообщение о том что не заполнены обязательные поля
    $message .= ($min > $max) ? 'минимум больше максимума! <br />' : '';
    
    if (empty($message)){ // если нет сообщения и значит все поля заполнены и все данные существуют то выполняем следующий блок
       $array = range($min, $max); // создвем массив со значениями из диапозона от $min до $max 
        
        $array = ($status == 1) ? sortmass($array) : resortmass($array); // если значение переменной $status переданной из формы равен 1 то сортируем функцией sortmass иначе сортируем resortmass
 
        $str_sort = implode(', ', $array); // разбиваем значения отсортированного массива в строку через запятую
        
        $array = array(); // создвем пустой массив
        for ($i = 0; $i < $ar; $i ++) // цикл от 0 до переменной $ar из формы
            $array[] = mt_rand($min, $max); // при каждой итерации цикла заносим случаеное значение из дапозона $max-$min в массив
        $str_rand = implode(', ', $array); // разбиваем значения случайного массива в строку через запятую
    }
} // конец блока кнопки submit
Добавлено через 2 минуты
только помоему здесь намешаны куски из разных скриптов
1
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 02:12
Я только не пойму как он может правильно работать, если в первой части скрипта (там где сортировка) сортируется массив заданной длины с точными цифрами от min до max (например
PHP
1
$array(1,2,3,4,5,6,7)
), а во второй части просто генерируються случайным образом, т.е. может быть
PHP
1
$array(5,6,2,6,3,2,5)
может я туплю ))))
0
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 02:22  [ТС]
fa2m не вижу ничего смешного) люди не рождаются со знанием PHP, все его учат, а если вы решили по флудить в теме то не надо лучше бы по теме что то написали

Добавлено через 1 минуту
alpex Большое спасибо)))))))
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 02:25
Цитата Сообщение от sever777 Посмотреть сообщение
fa2m не вижу ничего смешного) люди не рождаются со знанием PHP, все его учат, а если вы решили по флудить в теме то не надо лучше бы по теме что то написали

Добавлено через 1 минуту
alpex Большое спасибо)))))))
Я не пытаюсь кого-то оскорбить или насмехаться, сам когда-то этого не знал, но не просил советов на форумах, а изучал сам и поэтому сейчас это знаю!
0
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 02:29  [ТС]
P.S.S. И радуйтесь, что у Вас вышло не так как в этой ветке Разработать сценарий для вычисления факториала введенного числа
тема улыбнула)
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 02:33
Цитата Сообщение от fa2m Посмотреть сообщение
а во второй части просто генерируються случайным образом, т.е. может быть
вот и я говорю что там намешано из разных скриптов
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 02:36
Цитата Сообщение от alpex Посмотреть сообщение
вот и я говорю что там намешано из разных скриптов

Не по теме:

Так его же Вы писали? :D Что ж Вы, батенька, нерабочий скрипт да в массы... :D А ТС ещё и доказывает, что он верно работает. Или Вы только функции сортировки сочиняли?

0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 02:39
я писал несколько раз его для случайных чисел и генерированных range, и писал я его кажется не полностью а просто отдельные куски функции эти(sortmass и resortmass) запомнил точно
0
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 17
26.12.2012, 02:40  [ТС]
fa2m скрипт работает нормал)
P.s а ты бы как этот скрипт написал?)))
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
26.12.2012, 02:40
а на счет того что работает правильно так может он и должен так работать, сортировать отсортированный массив и не сортировать случайный
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 02:41
вместо
Цитата Сообщение от sever777 Посмотреть сообщение
$array = array();
for ($i = 0; $i < $ar; $i ++)
* * $array[] = mt_rand($min, $max);
* * $str_rand = implode(', ', $array);
напишите:
PHP
1
2
shuffle($array);
$str_rand = implode(', ', $array);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2012, 02:41
Помогаю со студенческими работами здесь

Принцип работы
ЗДравствуйте, первый вопрос по поводу выпадающего списка - его можно создать только через dropdownlist? И еще,пожалуйста,помогите...

Принцип работы ОУ в DC-DC
Подскажите как работает нижний по схеме ОУ. А то не как не пойму. Светодиоды по моему вообще неправильно подключены. Транзистор открывается...

Принцип работы механизма
Здравствуйте! Разбираем сложное движение механизма. Объясните пожалуйста работу механизма! Не могу понять, как оно двигается. ...

Принцип работы антивирусника
Привет! Объясните, пожалуйста, принцип работы антивирусника на дле? Как я понимаю у него есть список файлов, которые должны быть в движке....

Принцип работы keep me loggin in
Здравствуйте, не понимаю до конца - зачем нужна галочка &quot;keep me loggin in&quot; при авторизации: Нельзя же закрыть сессию, когда...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru