ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

проблема с алгоритмом
  #1  
Старый 03.03.2009, 19:30
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию проблема с алгоритмом

функция принимает массив с любым кол-вом элементов и кол-во столбцов.

Возвращает html-таблицу с отсортированными элементами, размещёнными по вертикали.

Всё отлично пока кол-во столбцов меньше 5.
Начиная от пяти, при любом раскладе выводится 6 столбцов.


PHP код:
<?php

function showTable($elements$cols 3){

    
sort($elements);

    
$size sizeof($elements);
    
$elementsInCol floor($size/$cols);

    
$html "<table border='1'>\n<tr>\n";
    
$cells $elementsInCol $cols;

    for(
$row $pos $i 0$i $cells$i++, $pos += $elementsInCol)
    {
        if(
$pos >= $size)
        {
            
$pos = ++$row;
            
$html .= "</tr>\n<tr>\n\n";
        }
        
$html .=  "\t<td>".$elements[$pos]."</td>\n";
    }

    
$html .= "</tr>\n</table>";

    return 
$html;
}

$cols 3;
$elements = array('C''A''B''G''H''F''D''E''I''J''Z''Y');
echo 
showTable($elements$cols);

вообще даже на бумаге хрень какая-то.
допустим есть массив:

A B C D E F G H I J Y Z - 12 элементов
делим на 5 столбцов:

если по 2 элемента в столбце - получается
A C E G I Y
B D F H J Z -- 6 столбцов. не влезает.

если по 3 элемента в столбце:

A D G J
B E H Y
C F I Z -- 4 столбца. 5-ый просто пустой!

Можно предположить что это правильно, хоть и нерационально.

Ща буду думать как это сделать

Последний раз редактировалось Дикс; 03.03.2009 в 19:37..
 
Ответить с цитированием

  #2  
Старый 03.03.2009, 19:40
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

блин, решил.
забыл заменить

if($pos >= $size)
на
if($pos >= $cells)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со входом на сайт. SHAXID Болталка 3 21.02.2009 17:08
Проблема отключения служб!!! Snap Безопасность 3 10.02.2009 15:12
Проблема с флешкой SONY F&D Аппаратное обеспечение 13 28.01.2009 22:21
Проблема заливки шела Dimazzz Форумы 20 28.07.2006 05:53
Проблема с установкой proxy Utochka Уязвимости 3 09.05.2006 01:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ