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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.