Професионална програма
Loading...
Kirito12 avatar Kirito12 1 Точки

Задача:хистограма на js

Здравейте приятели,може ли малко помощ със тази задача...Не мога даразбера защо при променлива n със стойност 4 кода работи по-вярно от колкото при стойност 3.Не зная и защо не печати правилните проценти ... Задачата е решавана на c# :

https://softuni.bg/forum/answers/details/24897

Това е условието и по-надолу моя код:

Дадени са n цели числа в интервала [1 … 1000]. От тях някакъв процент p1 са под 200, процент p2 са от 200 до 399, процент p3 са от 400 до 599, процент p4 са от 600 до 799 и останалите p5 процента са от 800 нагоре. Да се напише програма, която изчислява и отпечатва процентите p1, p2, p3, p4 и p5.


function Histogram(args) {
    //Променливи пазещи боря на числата по групи


    let n = Number(args[0]);

    let p1 = 0;
    let p2 = 0;
    let p3 = 0;
    let p4 = 0;
    let p5 = 0;

 

    for (let i = 1; i < n; i++) {
        let currentNum = Number(args[i])
        if (currentNum < 200) {
            p1++;
        }
        else if (currentNum < 400) {
            p2++;
        }
        else if (currentNum < 600) {
            p3++;
        }
        else if (currentNum < 800) {
            p4++;
        }
        else if (currentNum < 1000) {

            p5++;
        }

 

    }

 

    //Променливи в които ще запазим процентото разделение по групи
 

 

    let p1Percantage = 0;
    let p2Percantage = 0;
    let p3Percantage = 0;
    let p4Percantage = 0;
    let p5Percantage = 0;

 
   
    p1Percantage = (p1 / n * 100).toFixed(2);
    p1Percantage = (p2 / n * 100).toFixed(2);
    p1Percantage = (p3 / n * 100).toFixed(2);
    p1Percantage = (p4 / n * 100).toFixed(2);
    p1Percantage = (p5 / n * 100).toFixed(2);

    console.log(p1Percantage + "%");
    console.log(p2Percantage + "%");
    console.log(p3Percantage + "%");
    console.log(p4Percantage + "%");
    console.log(p5Percantage + "%");

     
}

Histogram(['3', '1', '2', '999']);

 

 

Тагове:
0
Programming Basics 24/07/2020 08:16:10
Kirito12 avatar Kirito12 1 Точки

Имах доста грешки, като <n трябвало да е n<=изписването на arguments,името на променливите  :

    p1Percantage = (p1 / n * 100).toFixed(2);
    p1Percantage = (p2 / n * 100).toFixed(2);
    p1Percantage = (p3 / n * 100).toFixed(2);
    p1Percantage = (p4 / n * 100).toFixed(2);
    p1Percantage = (p5 / n * 100).toFixed(2);

 

но с доста проби тръгна:


function Histogram(args) {

    let n = Number(arguments[0]);

    let v1 = 0.0;
    let v2 = 0.0;
    let v3 = 0.0;
    let v4 = 0.0;
    let v5 = 0.0;

    for (let i = 1; i <= n; i++) {
        let currentNum = Number(arguments[i])

        if (currentNum < 200) {
            v1++;
        }
        else if (currentNum < 400) {
            v2++;
        }
        else if (currentNum < 600) {
            v3++;
        }
        else if (currentNum < 800) {
            v4++;
        }
        else if (currentNum < 1000) {

            v5++;
        }
    }

 
    let p1Percantage = 0;
    let p2Percantage = 0;
    let p3Percantage = 0;
    let p4Percantage = 0;
    let p5Percantage = 0;
 
    p1Percantage = (v1 /n  * 100);
    p2Percantage = (v2 / n * 100);
    p3Percantage = (v3 / n * 100);
    p4Percantage = (v4 / n * 100);
    p5Percantage = (v5 / n* 100);
 
    console.log(p1Percantage.toFixed(2) + "%");
    console.log(p2Percantage.toFixed(2) + "%");
    console.log(p3Percantage.toFixed(2) + "%");
    console.log(p4Percantage.toFixed(2) + "%");
    console.log(p5Percantage.toFixed(2) + "%");
    
}

Histogram('4','53', '7','56', '999');

0