Ir ao conteúdo

Posts recomendados

Postado

Estou com uma dúvida, como faço essa divisão por subtração com um laço de repetição?

Faça um programa que calcule a divisão através de subtrações sucessivas.

o cara digitou 30

e depois 5 

e quer saber o total

isso que pode ser qualquer divisão inteira...

 

Exemplo:

30/5=6

 

30-5=25

25-5=20

... até dar zero

como faço para saber esse 6?

teria como mostrar um exemplo em C?

  

  • Curtir 1
Postado

Você pode fazer 1 laço de repetição subtraindo 1 unidade de cada vez aliado a um contador.

A cada 5 subtrações você soma 1 unidade de uma variável "c" por exemplo.

Quando você fizer a última subtração e o resultado for zero, sua conta terminou.

O total da divisão é o valor acumulado em "c".

Está estratégia é boa pois você não usa valores negativos.

Ou você pode, também, contar a cada 5 vezes que você soma 1 até chegar a 30. A quantidade de 5 vezes que você soma 1 é o resultado da divisão.

  • Curtir 1
Postado

@Gabriel Moreira Fonseca Sa      o while é melhor para isso, coloque uma variável para pegar o dividendo e outra para pegar o divisor e outra para o resultado, que deve ser iniciado com valor zero,  então pegue o valor que quer dividir e em seguida o valor do divisor aí coloque um do  while e dentro dele coloque a variável com valor do dividendo menos a variável com o valor do divisor e soma hum ao resultado enquanto a variável do dividendo for maior ou igual ao valor da variável do divisor, com isso na saída desse loop a variável do resultado conterá a parte inteira do valor da divisão do dividendo pelo divisor, se tiver parte decimal precisará mas algumas linhas de código .    mas não posso te dar o código pronto pois é contra as regras do fórum ,  então faça o código e poste aqui para vermos como está e em que podemos ajudar .

  • Curtir 1
Postado

Vai ser algo assim:

//Calcula o quociente de x por y, onde usa somente subtracoes em loop
//Programa divPorLoop.c
//Data fev 14 de 2018
//Mauro Brito
 
#include <stdio.h>//< inclui scanf, printf
 
//Resolve o quociente de x por y
//parametro x- dividendo inteiro
//parametro y- divisor inteiro != 0
//retorna z- conciente de x por y
int divLoop(int x, int y);//< Prototipo da tarefa principal
 
//Funcao principal do programa
//Nao tem parametros
//retorna inteiro 0- sucesso diferente para outros resultados
int main(void) {
    int x, y, z;
    x= 30;//< Dividendo
    y= 2;//< Divisor
    z= divLoop(x, y);//<quociente
     
    printf("%d div %d eh %d\n", x,y,z);
    return 0;
    }
//Divide x por y e retorna z- quociente
int divLoop(int x, int y) {
    int z; //< quociente de x por y
    if(!y || x < y)return 0;//< se y tem 0 ou e maior que y, então finaliza retornando 0
    (x < 0 && (x= -x) || y < 0 && (y= -y)); //< se y ou x menor 0 então inverte o sinal
     
    z= 1;
    while((x-= y), y <= x)z++;//< repete o loop ate que x nao seja divisivel
    return z;
    }

 

  • Curtir 1
  • Amei 1
  • Membro VIP
Postado

Olá.

 

Encontrei uma outra postagem com o mesmo tema... e unir as duas... então:

 

Apenas para esclarecer...

18 horas atrás, Gabriel Moreira Fonseca Sa disse:

@T1000_2015

Demostra esse exemplo na linguagem C que eu falei...

A proposta é que você mesmo entenda o problema e tente fazer algo. Essa "demonstração" já meio que antecipa o que foi pedido para ser feito... Se fosse para terceiros fazerem, não teria porque ser solicitado :). O foco dos "exercícios" é o "caminho para encontrar uma resposta", e não a resposta em si. É normal ter dificuldades e é esperado que tenha mesmo, e é o programador que tem que dar os primeiros passos. De qualquer sorte, um bom "esboço" já foi postado por @Mauro Britivaldo. Caso deseje, poderá usar esse código como base e fazer ajustes para o seu contexto.

 

Obs.: particularmente sugiro que faça um programa novo do zero, por exemplo seguindo as orientações da postagem do @T1000_2015 e @devair1010... e a depender dando uma "pescada" no código @Mauro Britivaldo. Mas que seja feito com o que você já entendeu da estrutura...

 

Resumindo:

- faça um programa que faça a tal "divisão através de subtração sucessiva" apenas tomando com base um escopo perfeito, ou seja, tratando de dados "ideais", como x=27 e y=3 ou o tal x=35 e y=5. Não se preocupe com os refinamentos ainda... Faça rodar e funcionar com esses exemplos. Um programa bem simples, sem tratamentos de erros ou de casos específicos ainda.

 

 

No aguardo.

  • Curtir 3
Postado
  1. Em 14/02/2018 às 19:26, Gabriel Moreira Fonseca Sa disse:

    Demostra esse exemplo na linguagem C que eu falei...

    Meu desejo foi de ajudar fazendo o pedido do colega do fórum de programação. Que tem seus próprios valores bem fundamentados, isso ficou claro na citação, sem a necessidade de achismo ou de minha opinião para resposta. Tendo ele fechado essa discussão.
  2. Em 15/02/2018 às 12:20, Simon Viegas disse:

    A proposta é que você mesmo entenda o problema e tente fazer algo.

    Exageramos e deixamos de ser objetivos até nas coisa mais simples. Isso porque pensamos acreditamos saber o que o bom para outro e atuamos dessa forma sem pensar. Algo que não vejo nos outros grupos (ingleses). Nossas intenções são sempre as melhores, contudo devemos deixar o obvio de lado e acreditar que as pessoas são capazes de por si só verem a proposta das coisa e ajuda-las naquilo que elas pedem ajuda. 
  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!