Algoritmos de Programación - División mediante restas
June 20, 2007Como estoy por terminar el curso de Fundamentos de Programación y también por petición popular, he decidido comenzar una serie de artículos sobre Algoritmia Simple, que puede serle muy útil a la persona que se inicie en la Programación.
Los artículos serán estructurados por una Introducción, la Explicación, el Pseudocódigo y la implementación en Lenguaje C. Lo hago así porque es lo que más se suele pedir en los cursos de Fundamentos de Programación.
Dicho esto comenzemos nuestra primera entrega.
División mediante Restas
1. Introducción: La División como todos la conocemos, es una operación en la cual tratamos de buscar el producto que multiplicado por el divisor, dé el dividendo o lo más parecido a este.
Ejemplo:
5 / 2 = 2 (2 x 2= 4), con residuo de 1 (5 - 4 = 1)
Sin embargo, la división no es mecánica. Existe todo un proceso, de restas por la cual obtenemos un resultado.
2. Explicación: Las computadoras solo pueden restar y sumar. Para multiplicar, suman progresivamente y para dividir… (Supongo ya lo habrás adivinado) restan progresivamente.
Veámoslo con el ejemplo del 5 / 2. Tenemos los siguientes datos:
- Dividendo: 5
- Divisor: 2
- Cociente: 2
- Residuo: 1
Ahora veamos las restas sucesivas:
5 - 2 = 3
3 - 2 = 1
Como verás se ha ido restando del dividendo, el divisor y la operación se repite hasta que el resultado ya no sea mayor que el divisor o menor que 0. El resultado de la última resta es el residuo y la cantidad de restas realizadas es el cociente. Nótese que el cociente es 2 y en total hay 2 restas.
Dicho esto… veámos como se implementa mediante un Pseudocódigo.
3. Pseudocódigo: Si lo expresamos como Pseudocódigo, algo así quedaría:
Nota: divid, es el divisor, divc, es el divisor, cosc, es el cociente, res, es el residuo.
leer divid, divc
si (divc=0) entonces
escribir “No se puede dividir entre cero”
salir()
fin_simientras divid >= divc hacer
divid = divid - divc
cosc = cosc + 1
fin mientrasres=divid
escribir “El cociente es”, cosc
escribir “El residuo es”, res
4. Implementación en Lenguaje C: Ya lo tenemos en Pseudocódigo, pero para un curso, normalmente lo exigen en lenguaje C. Si lo implementamos, así quedaría:
#include <stdio.h>
int main()
{
int divd, divc, cosc, res;scanf(”%d %d”, &divd, &divc);
if (divc==0) {
printf(”No se puede dividir entre cero\n”);
return 0;
}while (divd >= divc) {
divd=divd-divc;
cosc++;
}res=divd;
printf(”El cociente es %d\n”, cosc);
printf(”El residuo es %d\n”, res);return 0;
}
Por ahora no lo he puesto en otro lenguaje que sea C. En poteriores artículos quizá la situación cambie y usemos Python u otros lenguajes.
Disfruten del artículo y Feliz Programación.






donde esta el codigo mandenlo a mi msm plis
Comment by carlos — July 22, 2007 @ 9:38 pm
Groso, muy bueno, es justo lo que necesitaba!!!!
Comment by naieto — September 20, 2008 @ 6:47 pm
muchisimas gracias me encargaron algo parecido (el mio tenia que multiplicar tambien= y mi problema era al hacer el diagrama pero con el pseudocodigo lo traduje para hacer el diagrama. Gracias.
Comment by Alonso — October 19, 2008 @ 1:41 am
Me encanto tu explicacion de la division mediante restas sucesivas…!
muy buena
gracias!
ahora la podre implementar utilizando estructuras dinamicas…
Comment by Milagros — February 6, 2009 @ 8:01 am
muy buena tu info, me salvaste. lo necesitaba en sbasic, pero lo pude sacar muchas gracias
Comment by cris — February 25, 2009 @ 4:23 pm
Muy buena la aportacion, gracias!!!
Comment by Rodrigo — April 8, 2009 @ 11:51 am
Bueno solo sirve entre enteros y no deja el numero resultante como decimal
solo lo deja expresado
una buena base
Comment by C — April 13, 2009 @ 7:33 pm
muy buen articulo, gracias por tu aporte……lo unico es en el punto tres donde dice…………. “Nota: divid, es el divisor, divc, es el divisor, cosc, es el cociente, res, es el residuo.”…………….me imagino q la variable “divid” debe ser el dividendo y no el divisor como dices…….un pequeño aporte……
Comment by David Morales — May 14, 2009 @ 12:32 am