Домашни като цяло и как точно работи бг кодер


0

Здравейте имам няколко въпроса свързани със задачите. Когато тествам във VS code със зададени стойности резултатите са ми верни и нямам никакъв проблем и получавам конкретните стойности,но когато ги кача в бг кодер винаги нещо пищи и не ми дава 100%:

Та ето ги задачите ,ако може някой все пак да обясни къде е грешката :

08. Trapezoids
Преди бг кодер

let    a = 0.222                                             // декларация + стойност (едната страна)
        b = 0.333,                                           // декларация + стойност (другата страна)
        h = 0.555;                                         // декларация + стойност ( височината)

    let area = h * (( a + b) / 2);               // декларация +  формула

    if (( a < 500, b < 500, h < 500 ) && ( a > -500, b > -500 , h > - 500)){
       ( условие да са по малки от 500) и ( условие да са по големи от -500)
        console.log(area.toFixed(7));
     ( да изкара пресметнатото до 7 мият знак след точката)
    }

    

След бг кодер


function solve(args) {
   let a = args[0.222],
        b = args[0.333],
        h = args[0.555];

    let area = h * (( a + b) / 2);

    if (( a < 500, b < 500, h < 500 ) && ( a > -500, b > -500 , h > - 500)){
        console.log(area.toFixed(7));
    }
}

06. Point in a Circle
Преди бг кодер
      let x = -1.5,       
          y = -1.5,
          a = Math.pow((x-0), 2),
          b = Math.pow((y-0), 2),
          c = (a+b);
          InCircle = (Math.sqrt(c));

          if (( x < 1000 , y < 1000) && ( x > -1000, y > -1000)){           // проверка дали е в диапазон
              if (InCircle <= 2){
                  console.log('yes' + " " + parseFloat(Math.round(InCircle * 100) / 100).toFixed(2));
(изписва 'Да' и закръгля даденият резултат до 2,като се внимава за остатъците от не правилното пресмятане в джава обяснено в една от лекцийте(Math.round).
              }
              else
                console.log('no' + ' ' + parseFloat(Math.round(InCircle * 100) / 100).toFixed(2));
          }
          else
          console.log('bad input');

след бг кодер:

function solve(args) {
 
     let x = args[-1.5],
          y = args[-1.5],
          a = Math.pow((x-0), 2),
          b = Math.pow((y-0), 2),
          c = (a+b);
          InCircle = (Math.sqrt(c));

          if (( x < 1000 , y < 1000) && ( x > -1000, y > -1000)){
              if (InCircle <= 2){
                  console.log('yes' + " " + parseFloat(Math.round(InCircle * 100) / 100).toFixed(2));
              }
              else
                console.log('no' + ' ' + parseFloat(Math.round(InCircle * 100) / 100).toFixed(2));
          }
          else
          console.log('bad input');
}


    



Отговори



1

здравей ,   let x = args[-1.5], y = args[-1.5], това не е вярно , тук в скобите на args[] трябва да кажеш на коя позиция в масива ще са тоест let x=args[0] х на нулева  позиция а самата стойност я задаваш извън скоупа за да си провериш ето така

solve(['-1.5','-1.5'] ) така декларираш на нулева позиция стойността -1,5 за x и -1,5 на първа позиция в масива за y 


от vaskoelenkov (279 точки)


0
Добре много ти благодаря това сработи перфектно на кръга но на трапеца получавам едни резултати в VS code и други в BG coder ?!


0
 Като изключим това за което писах не виждам друго освен това че подаваш стринг от число а не число , да не би това да бърка нещо , ето ти моето решение което е като твоето и ми дава 100-100 в  bg coder
function solve(args) { let a = +args[0]; let b = +args[1]; let h = +args[2]; let area = (((a + b) / 2) * h); if (((a && b && h) >= -500) && (((a && b && h)) <= 500)) { console.log(area.toFixed(7)); } }

от vaskoelenkov (279 точки)


0

И аз така, вече като видя зелените тикчета и се стряскам :) конзолата разбира, кодера - не. 

function solve(arg) {

    let x = arg[0];
    let y = arg[1];
    let distance = Math.sqrt(x*x + y*y);
    if (( x < 1000, y < 1000) && ( x > -1000, y > -1000)) { 
        if (distance > 2) {
        console.log("no " + distance.toFixed(2));
    } else {
        console.log("yes " + distance.toFixed(2));
    }
    } else {
        console.log("out of range");
    }
}

Ако някой ми обясни защо на това дава 0/100, ще бъде супер.


от veselinaf (5 точки)


0
Ами не съм много сигурен във формулата с която смяташ 
function solve(args) { let x1 = +args[0]; let y1 = +args[1]; let x = 0; let y = 0; let r = 2; let distance = Math.sqrt((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y)); if (distance <= r) { console.log('yes ' + distance.toFixed(2)); } else { console.log('no ' + distance.toFixed(2)); } }
на това дава 100 точки , сравни го с твоето дано помогне

от vaskoelenkov (279 точки)

1

Благодаря ти Васко, ще помисля. 

Много успехи през Новата година, както и на автора на темата! Весело изкарване на именния ден :)


от veselinaf (5 точки)