Fiz um programa que representa a fração que passarem para ele, por exemplo, se alguem passar 10/9, 1/10, ele ira representar, porem estou com um problema estranho, se eu chamar o desenho das funçoes e passar os numero pela função, ele funciona perfeitamente, mas se passar pelo prompt da um erro curioso, quando esta fração representa um numero maior que um inteiro(3/2), a primeira linha da fração em vez de obedecer a parte de em quantas partes cada fração se divide(neste caso 2) ela pega o valor 3, mas nas outras linhas funciona normalmente, vou estar passando o codigo
<canvas width="600" height="500">
<script>
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
function desenhaquadradopartes(x, y){
pincel.fillStyle = 'green';
pincel.beginPath();
pincel.fillRect(x,y,50,50);
pincel.strokeStyle = 'black';
pincel.strokeRect(x,y,50,50);
}
function desenhaquadradofração(x,y){
pincel.fillStyle = 'white';
pincel.beginPath();
pincel.fillRect(x,y,50,50);
pincel.strokeStyle = 'black';
pincel.strokeRect(x,y,50,50);
}
var fração = parseInt(prompt("Qual é o divisor?"));
var fração1 = parseInt(prompt("e o dividendo?"));
function fraçãodecimal(fração, fração1){
var z = 0
for(var x = 0; x < fração; x++){
desenhaquadradopartes(z,0);
z = z + 50
}//fechamento do bloco for q faz a parte do dividendo da fração
fração1 = fração1 - fração;
for(var e = 0; e < fração1; e++){
desenhaquadradofração(z,0);
z = z + 50
}//fechamento do bloco for parte do divisor
}//fechamento da função fraçãodecimal
function fraçãointeira(fração,fração1){
var partesinteiras = parseInt(Math.floor(fração/fração1));
var y = 0;
for(var i = 0; i < partesinteiras; i++){
var z = 0;
console.log(fração1);
for(var e = 0; e < fração1; e++){
desenhaquadradopartes(z,y);
z = z + 50;
} // fechamento do for q faz o desenho da parte inteira
y = y + 100;
} // fechamento do for q faz o controle de quantas vezes desenhar a parte inteira
var fraçãodecimal = fração - partesinteiras * fração1;
z = 0;
for( var p = 0; p<fraçãodecimal; p++){
desenhaquadradopartes(z,y);
z = z + 50;
}//fechamento do bloco for q faz a parte inteira da casa decimal
var casasvazias = fração1 - fraçãodecimal;
for(var b = 0; b <casasvazias;b++){
desenhaquadradofração(z,y);
z = z + 50;
}//fechamento do bloco for do dividendo da ultima parte
}
if(fração1 => fração){
fraçãodecimal(fração, fração1);
}
if(fração1 < fração){
fraçãointeira(fração, fração1);
}
</script>