Код:
<!DOCTYPE html>
<html>
<body>
Наименование / Цена / Кол-во
<form method="post" onSubmit="return main(this);">
<input type="text" name="name[]" size="15" value="Пылесос"/>
<input type="text" size="5" name="cost[]" value="3000"/>
<input type="text" size="2" name="count[]" value="4"/>
<br/>
<input type="text" name="name[]" size="15" value="Наушники"/>
<input type="text" size="5" name="cost[]" value="800"/>
<input type="text" size="2" name="count[]" value="2"/>
<br/>
<input type="text" name="name[]" size="15" value="Телефон"/>
<input type="text" size="5" name="cost[]" value="13000"/>
<input type="text" size="2" name="count[]" value="1"/>
<br/>
<input type="text" name="name[]" size="15" value="Микроволновка"/>
<input type="text" size="5" name="cost[]" value="3000"/>
<input type="text" size="2" name="count[]" value="4"/>
<br/>
<input type="text" name="name[]" size="15" value="Утюг"/>
<input type="text" size="5" name="cost[]" value="3000"/>
<input type="text" size="2" name="count[]" value="4"/>
<br/>
<input type="submit" value="Построить график"/>
</form>
<canvas id="canvas" width="600" height="330">Обновите браузер</canvas>
<script>
function main(f)
{
// Товары
var products = document.getElementsByName("name[]");
// Цена
var prices = document.getElementsByName("cost[]");
// Количество
var cnt_arr = document.getElementsByName("count[]");
// Сумма за товар
var amount_arr = new Array(products.length);
// Сумма затраченная на приобритенные товары
var sum = 0;
// Кол-во товаров, на которые потрачена одинаковая сумма
var cnt_one_sum = 0;
// Обходим все товары
for (var i=0; i<products.length; i++)
{
var name = products[i].value,
cost = prices[i].value,
cnt = cnt_arr[i].value;
// Сумма за этот товар
amount = cost * cnt;
if (isset(amount_arr, amount) > 0)
cnt_one_sum++;
amount_arr[i] = amount;
// Прибавляем к общей сумме прайса
sum += amount;
}
if (cnt_one_sum > 0) cnt_one_sum++;
// Рисуем диаграмму
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.clearRect(0,0,canvas.width,canvas.height);
j = 0;
for (var i=0; i<products.length; i++)
{
var name = products[i].value,
cost = prices[i].value,
cnt = cnt_arr[i].value;
// Сумма за этот товар
amount = cost * cnt;
if (isset(amount_arr, amount) > 1)
continue;
j++;
// Заголовок
ctx.font="12px Arial";
ctx.fillStyle = "#000000";
ctx.fillText(name + ' - ' + amount + 'р.', 10, 60*j+30);
// Диаграмма
ctx.fillStyle = "black";
var per = parseInt(100 * amount / sum);
ctx.fillRect(10, 60*j+35, per*5, 25);
ctx.fillStyle = "#eeeeee";
ctx.fillText(per + '%', 15, 60*j+52, 100, 25);
}
alert('Общая сумма затраченная на все товары: ' + sum + 'р. Одинаковая сумма потрачена на ' + cnt_one_sum + ' товаров');
return false;
}
// Проверка наличия суммы в массиве
function isset(arr, amount)
{
var cnt = 0;
for(var i=0; i<arr.length; i++)
if (arr[i] == amount)
cnt++;
return cnt;
}
</script>
</body>
</html>
Вот его задание было:
Приводятся данные о закупках пяти наименований товаров: цена за единицу и количество приобретенных экземпляров. Напишите сценарий, определяющий сумму, затраченную на приобретенные товары. Определите, имеются ли товары, на которые потрачена одинаковая сумма, и сколько их. Постройте диаграмму, отражающую затраченные суммы на приобретение разных товаров.?
А вот что нужно сделать:

Вроде код не сложный, пытался сделать сам, но график не выводит(
Может поможет кто за спасибо или за полтос?
Отредактировал: Vladddd, - 29.5.2014, 11:51