Я Фоюмчанин ? дааааа)
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
1

Сортировка ячеек таблицы или что то в этом роде)

15.02.2013, 12:27. Показов 1083. Ответов 7
Метки нет (Все метки)

Всем доброго времени суток.
Друзья, мне нужно разработать 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
<!DOCTYPE HTML PUBLIC "-//w3c//DTD HTML 4.01//EN" "http://www.w3.org/TH/HTML4/strict.dtd">
<html>
    <head>
        <title>Треугольник Паскаля</title>
        <?php
        echo"<style>
            body{
                background: rgb(120,240,0);
            }
            p{
                text-align: center;
                font-size: 24pt;
                color: rgb(201,255,147);
            }
            table{
                border-style: dotted;
                text-align: center;
                border-color: rgb(219,255,183);
                border-width:8px;
                margin-left: 370px;
                width: 50%;
                height: 50%;
                font-size: 19pt;
                color: rgb(53,106,0);
            }
            tr{
                text-align: center;
            }
            td{
                border-style: solid;
                border-color: green;
            }
        </style>"
        ?>
    </head>
    <body>
        <?php
            echo "<p>Треугольник Паскаля</p>";
            echo "<table>";
            $n=1000;
            $c=array();
            for($n=0;$n<15;$n++){
                for($i = 1; $i <= $n; $i++){
                    $c[$i] = 0;
                }
                $c[0] = 1;
                for($j = 1; $j <= $n; $j++){
                    for($i = $j; $i >= 1; $i--){
                        $c[$i] = $c[$i-1] + $c[$i];
                    }
                }
                echo "<tr>";
                for($i=0; $i<=$n; $i++){
                    echo "<td>$c[$i]</td>";
                }
                echo "<tr>\n";
            }
            echo "</table>";
        ?>
    </body>
</html>

Результат получается смещенный влево.
А нужно сделать по центру, как на картинке.
Сортировка ячеек таблицы или что то в этом роде)

Выручайте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2013, 12:27
Ответы с готовыми решениями:

Работа с перечислением или что-то в этом роде
Здравствуйте. В своём приложении на C# я работаю с перечислением. Выглядит это так: Само...

Работа с массивом объектов или что-то в этом роде
Здравствуйте. У меня есть цикл в котором происходит вывод таблицы с датами на 30 дней вперёд. Так...

стили текста или что-то в этом роде
привет всем хоче спросить как организовать скрипт который изменяет стили текста при нажатии на...

массив массивов или что-то в этом роде
у меня есть число а -составное которое делится на b1,b2,...,bn; и в зависимости от bi надо...

7
2364 / 2236 / 575
Регистрация: 27.05.2011
Сообщений: 7,681
15.02.2013, 13:35 2
в твоей таблице по одним элементом 2 так красиво не разместить , примерно можно как-то так сделать :
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
<?
     
        function EchoEmptyLine($count){
          return str_repeat('<td></td>' , floor($count));
        }
        
        function EchoLine($element , $cur_number , $total_on_line , $max_on_line){
           $offset = ( $max_on_line - ++$total_on_line ) / 2 ;
           if ($cur_number == 0) echo EchoEmptyLine(  $offset  );
           echo "<td>".$element."</td>";
           if ($cur_number == --$total_on_line) echo EchoEmptyLine(  $offset  );
        }
 
?>
<!DOCTYPE HTML PUBLIC "-//w3c//DTD HTML 4.01//EN" "http://www.w3.org/TH/HTML4/strict.dtd">
<html>
    <head>
        <title>Треугольник Паскаля</title>
        <style>
            body{
                background: rgb(120,240,0);
            }
            p{
                text-align: center;
                font-size: 24pt;
                color: rgb(201,255,147);
            }
            table{
                border-style: dotted;
                text-align: center;
                border-color: rgb(219,255,183);
                border-width:8px;
                margin-left: 370px;
                width: 50%;
                height: 50%;
                font-size: 19pt;
                color: rgb(53,106,0);
            }
            tr{
                text-align: center;
            }
            td{
                border-style: solid;
                border-color: green;
            }
        </style>
    </head>
    <body>
    <p>Треугольник Паскаля</p>
    <table>
        <?php    
            $n=1000;
            $max_on_line = 15;
            $c=array();
            for($n=0;$n<$max_on_line;$n++){
                for($i = 1; $i <= $n; $i++){
                    $c[$i] = 0;
                }
                $c[0] = 1;
                for($j = 1; $j <= $n; $j++){
                    for($i = $j; $i >= 1; $i--){
                        $c[$i] = $c[$i-1] + $c[$i];
                    }
                }
                echo "<tr>";
                for($i=0; $i<=$n; $i++){
                    EchoLine($c[$i] , $i  , $n , $max_on_line);
                }
                echo "<tr>\n";
            }            
        ?>
        </table>
    </body>
</html>
но вообще я-бы без таблицы оформлял
1
Я Фоюмчанин ? дааааа)
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
15.02.2013, 18:29  [ТС] 3
Цитата Сообщение от crautcher Посмотреть сообщение
но вообще я-бы без таблицы оформлял
А как без таблицы? И функции использовать тоже нельзя
0
2364 / 2236 / 575
Регистрация: 27.05.2011
Сообщений: 7,681
15.02.2013, 18:42 4
ну , я чего-то сразу не догадался можно так
Код
пустая ячаейка 1 пустая ячаейка
1         пустая ячаейка        1
тогда будет подобие пирамиды
0
Я Фоюмчанин ? дааааа)
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
15.02.2013, 18:51  [ТС] 5
Это то я понимаю. Ток кодом как, как не пытался все каряво, я уже психанул, удалил и заново написал как было.
0
2364 / 2236 / 575
Регистрация: 27.05.2011
Сообщений: 7,681
15.02.2013, 19:01 6
кроч времени нет проверить , убегаю
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
<table>
<?
$n=1000;
$all = array();
            $max_on_line = 15;
            $c=array();
            for($n=0;$n<$max_on_line;$n++){
                for($i = 1; $i <= $n; $i++){
                    $c[$i] = 0;
                }
                $c[0] = 1;
            for($j = 1; $j <= $n; $j++){
                    for($i = $j; $i >= 1; $i--){
                        $c[$i] = $c[$i-1] + $c[$i];
                    }
             }          
             for($i=0; $i<=$n; $i++){                    
                    $all[$n][]=$c[$i];
             }
          }
          $max_real_td_half = floor(($max_on_line + ($max_on_line - 1)) / 2);
          
          foreach ($all as $line){
            echo '<tr>';
            echo str_repeat('<td></td>' , $max_real_td_half ) , '<td>' , implode($line , '</td><td></td><td>'), '</td>' , str_repeat('<td></td>' , $max_real_td_half-- );
            echo '</tr>';
          }
          
?>
 
</table>
1
Я Фоюмчанин ? дааааа)
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
15.02.2013, 19:25  [ТС] 7
crautcher, Огромное спасибо. Все отлично(Осталось ток разобраться)
Может у вас есть свободное время и вы закаментите строки:
PHP
1
2
3
4
5
6
         $max_real_td_half = floor(($max_on_line + ($max_on_line - 1)) / 2);
          
          foreach ($all as $line){
            echo '<tr>';
            echo str_repeat('<td></td>' , $max_real_td_half ) , '<td>' , implode($line , '</td><td></td><td>'), '</td>' , str_repeat('<td></td>' , $max_real_td_half-- );
            echo '</tr>';
Новичку разобраться тяжко.
0
2364 / 2236 / 575
Регистрация: 27.05.2011
Сообщений: 7,681
16.02.2013, 15:43 8
сперва мы считаем сколько пустых клеток надо рисовать с каждого бока ,
затем рисуем пустые клетки , рисуем числа и пустые клетки после
затем уменьсяем число пустых клеток с каждого бока на 1 и повторяем пока не кончатся числа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2013, 15:43
Помогаю со студенческими работами здесь

Вирус в биос или что то в этом роде!
все просто! сразу после загрузки биоса вылазеет текстовое сообщение отправьте смс для получения...

Объединение таблиц или что то в этом роде
есть запрос SELECT * FROM TABLE(некая_процедура(некий_айди)) Данный вопрос работает, выдает на...

Клавиатурный шпион или что-то в этом роде
Помогите написать программу, реагирующую на все нажатия клавиатуры в Windows и выполняющую...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru