Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: максимальное число
 
 автор: servannin   (21.07.2006 в 19:43)   письмо автору
 
 

Подскажите как получить максимальное число из var ch = [[ 1, 10 , 1, 25], [2,44, 2, 42], [ 3, 1, 23, 10]]; ,задать столбику с этим числом высоту например 100px ,а остальные столбики рисовать относительно первого



<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  <style type="text/css">
    body {background-color: #E8E8E8;}
    td {font-size: 7pt; color: #565656; text-align: center;}
    img {width: 9; background-color: #FF8000; border: 0; border-bottom: 1 solid #FFFFFF; border-left: 1 solid #FFFFFF;}
    .d {background-color: #FFFFFF; border-bottom: 1 solid #565656;}
    .n {background-color: #C0C0C0; border-bottom: 1 solid #565656;}
    .f {background-color: #C0C0C0; border-bottom: 1 solid #565656; border-left: 1 solid #565656;}
    .m {border-left: 1 solid #565656;}
  </style>
</head>
<body leftmargin=0 topmargin=0 bottommargin=0 rightmargin=0>
  <table width="100%" height=217 bgcolor=#FFFFFF border=0 cellspacing=0 cellpadding=0>
  <tr height="100%">
<script>
  var ch = [[ 1, 10 , 1, 25], [2,44, 2, 42], [ 3, 1, 23, 10]];
  var dt = ['Dcade 1', 'Dcade 2', 'Dcade 3'];
  for(i = 0; i < ch.length; i++)
    for(j = 0; j < ch[i].length; j += 2)
      document.write('<td valign=bottom><img style="height: ' + Math.max(ch[i][j + 1], 1) + '" src="images/blank.gif"></td>\n');
  document.write('<td width="100%">&nbsp;</td></tr><tr>\n');
  for(i = 0; i < ch.length; i++)
    for(j = 0; j < ch[i].length; j += 2)
      document.write('<td class=' + (i == 0 && j < 2 || ch[i][j - 2] < ch[i][j] ? ch[i][j] > 21 || ch[i][j] < 8 ? 'n' : 'd' : 'f') + '>' +
        (ch[i][j] % 2 == 0 ? ch[i][j] : '&nbsp;') + '</td>\n');
  document.write('<td width="100%">&nbsp;</td></tr><tr height=10>\n');
  for(i = 0; i < dt.length; i++)
    document.write('<td ' + (i == 0 ? '' : 'class=m ') + 'colspan=' + ch[i].length / 2 + ' nowrap>' + dt[i] + '</td>\n');
</script>
    <td width="100%">&nbsp;</td>
  </tr>
  </table>
</body>
</html>

   
 
 автор: RMW   (21.07.2006 в 20:44)   письмо автору
 
   для: servannin   (21.07.2006 в 19:43)
 

Узнать наибольшее число в этом массиве можно так:

var ch = [[ 1, 10 , 1, 25], [2,44, 2, 42], [ 3, 1, 23, 10]];

var res = [];
for(var i=0;i<ch.length;i++)res.push(Math.max.apply(null,ch[i]));
var biggest = Math.max.apply(null,res);

alert('Наибольшее число '+biggest);

   
 
 автор: servannin   (21.07.2006 в 20:48)   письмо автору
 
   для: RMW   (21.07.2006 в 20:44)
 

Спасибо!
А как можно задать высоту столбца с этим максимальным числом ,например, 150 px,а остальным столбцам с соответствующими числами задать высоту уже относительно этого??

   
 
 автор: Crux   (21.07.2006 в 20:54)   письмо автору
 
   для: servannin   (21.07.2006 в 20:48)
 


for(var i=0; i < ch.length; i++)
  for (var j=0; j<ch[i].length; j++)
    new_ch[i][j] = Math.round(ch[i][j]*150/biggest)

   
 
 автор: servannin   (21.07.2006 в 20:57)   письмо автору
 
   для: Crux   (21.07.2006 в 20:54)
 

Господа,извиняюсь за наглость :)
А можно в полном коде?

Спасибо

   
 
 автор: Crux   (22.07.2006 в 07:06)   письмо автору
 
   для: servannin   (21.07.2006 в 20:57)
 


<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  <style type="text/css">
    body {background-color: #E8E8E8;}
    td {font-size: 7pt; color: #565656; text-align: center;}
    img {width: 9; background-color: #FF8000; border: 0; border-bottom: 1 solid #FFFFFF; border-left: 1 solid #FFFFFF;}
    .d {background-color: #FFFFFF; border-bottom: 1 solid #565656;}
    .n {background-color: #C0C0C0; border-bottom: 1 solid #565656;}
    .f {background-color: #C0C0C0; border-bottom: 1 solid #565656; border-left: 1 solid #565656;}
    .m {border-left: 1 solid #565656;}
  </style>
</head>
<body leftmargin=0 topmargin=0 bottommargin=0 rightmargin=0>
  <table width="100%" height=217 bgcolor=#FFFFFF border=0 cellspacing=0 cellpadding=0>
  <tr height="100%">
<script>
  var ch = [[ 1, 10 , 1, 25], [2,44, 2, 42], [ 3, 1, 23, 10]];
  
var res = [];
for(var i=0;i<ch.length;i++)res.push(Math.max.apply(null,ch[i]));
var biggest = Math.max.apply(null,res);
var new_ch = new Array();
for(var i=0; i < ch.length; i++)

  new_ch[i] = new Array();
  for (var j=0; j<ch[i].length; j++)
    new_ch[i][j] = Math.round(ch[i][j]*150/biggest);
}
  var dt = ['Dcade 1', 'Dcade 2', 'Dcade 3'];
  for(i = 0; i < new_ch.length; i++)
    for(j = 0; j < new_ch[i].length; j += 2)
      document.write('<td valign=bottom><img style="height: ' + Math.max(new_ch[i][j + 1], 1) + '" src="images/blank.gif"></td>\n');
  document.write('<td width="100%">&nbsp;</td></tr><tr>\n');
  for(i = 0; i < new_ch.length; i++)
    for(j = 0; j < new_ch[i].length; j += 2)
      document.write('<td class=' + (i == 0 && j < 2 || new_ch[i][j - 2] < new_ch[i][j] ? new_ch[i][j] > 21 || new_ch[i][j] < 8 ? 'n' : 'd' : 'f') + '>' +
        (new_ch[i][j] % 2 == 0 ? new_ch[i][j] : '&nbsp;') + '</td>\n');
  document.write('<td width="100%">&nbsp;</td></tr><tr height=10>\n');
  for(i = 0; i < dt.length; i++)
    document.write('<td ' + (i == 0 ? '' : 'class=m ') + 'colspan=' + new_ch[i].length / 2 + ' nowrap>' + dt[i] + '</td>\n');
</script>
    <td width="100%">&nbsp;</td>
  </tr>
  </table>
</body>
</html> 

   
 
 автор: servannin   (22.07.2006 в 21:13)   письмо автору
 
   для: Crux   (22.07.2006 в 07:06)
 

Crux, огромное спасибо!
И последний вопрос : а как можно делать то же самое,то есть рисовать столбики,но ,чтобы массив выглядел,например, так var ch = [[ 5, 25], [20, 42], [ 23, 10]]; и чтобы как и сейчас рисовались столбики,но только по этим 6 числам ?

   
 
 автор: servannin   (24.07.2006 в 12:29)   письмо автору
 
   для: servannin   (22.07.2006 в 21:13)
 

ау....хэлп плиз

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования