SlideShare una empresa de Scribd logo
Giseproi   curso de programación - sesión 5 - ejemplos de algoritmos (1)
Tema:
Ejemplos de
Algoritmos
Factorial de un número
La variable contador
participa en tres sentencias:
a. Una asignación:
contador=1
b. Una decisión:
¿contador<=numero?
c. Un incremento antes del flujo
del ciclo.
contador=contador+1
Este patrón corresponde a
una construcción while.
Recordar que un for es un caso
especial de un while
Factorial de un número.
Algoritmo implementado en C utilizando un ciclo while.
int calcularFactorial( int numero )
{
int factorial:
int contador;
factorial=1;
contador=1;
while(contador<=numero)
{
factorial=factorial*contador;
contador=contador+1;
}
return factorial;
}
Verificar si un número es primo
Verificar si un número es primo
int verificarPrimo(int numero){
int primo=1;
int divisor;
int residuo;
divisor=2;
do{
residuo=numero%divisor;
if(residuo==0){
primo=0;
return primo;
}
divisor=divisor+1;
}while(divisor<numero);
return primo;
}
Verificar si un número es primo (Algoritmo
II)
Determinar si un número es primo (algoritmo II)
int esPrimo(int numero){
int divisor=1, residuo, totalDivisores=0;
bool primo;
do{
residuo=numero%divisor;
if(residuo==0){
totalDivisores=totalDivisores+1;
}
divisor=divisor+1;
}while(divisor<=numero);
if(totalDivisores<3){
primo=true;
}else{
primo=false;
}
return primo;
}
Sumar los números primos que existen entre 100
y 20000
Técnica: Divide y Vencerás.
Número de algoritmos: 2
Hechos:
Ya se tiene un algoritmo que permite determinar si un
número es primo o no.
La suma se incrementa cada vez que se encuentra
un número primo.
El algoritmo termina cuando se alcanza el valor del
límite superior, en este caso 20000
Giseproi   curso de programación - sesión 5 - ejemplos de algoritmos (1)
bool verificarPrimo(int numero)
{
bool primo;
int divisor;
int residuo;
divisor=2;
do
{
residuo=numero%divisor;
if(residuo==0)
{
primo=false;
return primo;
}
divisor=divisor+1;
}while(divisor<numero);
primo=true;
return primo;
}
int main()
{
int sumaPrimos=0;
int limiteSuperior=20000;
int i;
bool primo;
bool verificarPrimo(int numero);
for(i=1;i<=limiteSuperior;i++)
{
primo=verificarPrimo(i);
if(primo==true)
{
sumaPrimos=sumaPrimos+i;
}
};
return sumaPrimos;
}
Calcular la media aritmética de los primeros 30 números
primos.
Técnica: Divide y Vencerás.
Número de algoritmos: 2
Hechos:
Ya se tiene un algoritmo que permite determinar si un número es
primo o no.
La suma se incrementa cada vez que se encuentra un número
primo.
El ciclo termina cuando la cantidad de números encontrados es
30
Giseproi   curso de programación - sesión 5 - ejemplos de algoritmos (1)
int verificarPrimo(int numero)
{
bool primo;
int divisor;
int residuo;
divisor=2;
primo=1;
do
{
residuo=numero%divisor
if(residuo==0)
{
primo=0;
return primo;
}
divisor=divisor+1;
}while(divisor<numero);
return primo;
}
int main()
{
int sumaPrimos=0;
int contadorPrimos=0;
int i;
bool primo;
bool verificarPrimo(int numero);
int media;
for(i=1;contadorPrimos<=30;i++)
{
primo=verificarPrimo(i);
if(primo==true)
{
sumaPrimos=sumaPrimos+i;
contadorPrimos++;
}
};
media=sumaPrimos/30;
return media;
}
Calcular el factorial del tercer número primo
que se encuentre en un rango de números
dado.
Técnica: Divide y Vencerás.
Número de algoritmos: 3
Hechos:
Ya se tiene un algoritmo que permite determinar si
un número es primo o no.
Ya se tiene un algoritmo que permite determinar el
factorial de un número.
Giseproi   curso de programación - sesión 5 - ejemplos de algoritmos (1)
Int verificarPrimo(int numero)
{
bool primo;
int divisor;
int residuo;
divisor=2;
primo=1;
do
{
residuo=numero%divisor;
if(residuo==0)
{
primo=0;
return primo;
}
divisor=divisor+1;
}while(divisor<numero);
return primo;
}
int factorial( int numero)
{
int factorial:
int i;
factorial=1;
for(i=1;i<=numero;i++)
{
factorial=factorial*i;
}
return factorial;
}
int main()
{
int limiteInferior , limiteSuperior, resultado, i=0, numeroPrimo=0;
bool esPrimo;
int verificarPrimo(int numero);
int factorial( int numero);
limiteInferior=40; //Valor predeterminado para verificar
limiteSuperior=400; //Valor predeterminado para verificar
do
{
If( limiteInferior<=limiteSuperior ){
esPrimo=verificarPrimo( limiteInferior );
If (esPrimo== 1){
numeroPrimo=limiteInferior;
i=i+1;
}
}else{
i=4; // break;
}
}while(i<3);
resultado=factorial(numeroPrimo);
return resultado;
}
Ejercicio: (Sin consultar en Internet)
Se tiene una pareja de conejos juntos en un lugar cerrado y se desea
saber cuántos son creados a partir de este par cuando su naturaleza
es: parir un par cada mes, y los nacidos han de parir, desde el
segundo mes, un par también.
Crear un algoritmo que permita deducir la cantidad de conejos que
existirán después de un número de meses dado.
Resuelto por Alejandro de Pisa en 1202
TIP: Determinar de forma “manual”
Cuantos pares existirán en el mes 1, 2,3
3,4 y 6....luego deducir un patrón del cual
Se pueda derivar un algoritmo.
Los contenidos originales en esta obra, se distribuyen bajo una Licencia Creative Commons
Atribución-Compartir Igual 3.0 Unported.
Atribución – Compartir igual.
De conformidad a esta licencia:
Usted es libre para:
● Compartir — copiar y redistribuir el material en cualquier medio o formato
● Adaptar — remezclar, transformar y crear a partir del material
Para cualquier propósito, incluso comercialmente
Bajo los siguientes términos:
● Atribución — Usted debe darle crédito a esta obra de manera adecuada: si se suministran, usted debe
dar el nombre del creador y de las partes atribuidas, un aviso de derechos de autor, una nota de
licencia, un aviso legal, y un enlace al material; e indicando si se han realizado cambios. Puede
hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que usted o su uso tienen el
apoyo del licenciante
● Compartir igual — Si usted mezcla, transforma o crea nuevo material a partir de esta obra, usted podrá
distribuir su contribución siempre que utilice la misma licencia que la obra original..
Las marcas, nombres de productos y empresas, logos, figuras, citas, contenidos no originales de GISEPROI y
otras referencias; son propiedad de sus respectivos dueños y no están cubiertos por esta licencia.

Más contenido relacionado

PPT
Algoritmo congruencial aditivo
DOC
Algoritmo de booth
DOCX
Ejemplo de algoritmo de booth
DOCX
dqwrwer
PDF
PPT
Algoritmos computacionales y programación: 4
PDF
Arreglos en c ++
PPTX
Sesion02
Algoritmo congruencial aditivo
Algoritmo de booth
Ejemplo de algoritmo de booth
dqwrwer
Algoritmos computacionales y programación: 4
Arreglos en c ++
Sesion02

La actualidad más candente (20)

PPT
Algoritmos computacionales y programación: 3
PDF
Hp practica1 - Estructuras secuenciales
PPTX
9. estructuras de control parte ii
PDF
Metodo congruencial mixto en java
PDF
Contar digitos
PDF
Programación 1: algoritmos
PDF
Ejemplos de algoritmos
PPTX
PDF
Ejercicios secuenciales
PDF
Arreglos en pseint Tutorial Basico
DOC
Algoritmos secuenciales resueldos
PPT
Ejercicios de algoritmos
PPTX
DOC
Estructura Secuencial
PPT
Lenguaje de programacion c++ basico 4ta parte expresiones y funciones matemát...
PPTX
Condicion Si ANIDADA
PDF
Estructura Repetitiva MIENTRAS (While) con PSeInt
PPTX
Serie de características
PPTX
Pseudocodigo
DOCX
Ejemplos diagramas de_flujos_
Algoritmos computacionales y programación: 3
Hp practica1 - Estructuras secuenciales
9. estructuras de control parte ii
Metodo congruencial mixto en java
Contar digitos
Programación 1: algoritmos
Ejemplos de algoritmos
Ejercicios secuenciales
Arreglos en pseint Tutorial Basico
Algoritmos secuenciales resueldos
Ejercicios de algoritmos
Estructura Secuencial
Lenguaje de programacion c++ basico 4ta parte expresiones y funciones matemát...
Condicion Si ANIDADA
Estructura Repetitiva MIENTRAS (While) con PSeInt
Serie de características
Pseudocodigo
Ejemplos diagramas de_flujos_
Publicidad

Similar a Giseproi curso de programación - sesión 5 - ejemplos de algoritmos (1) (20)

PPTX
DOCX
Informe de pseint
PDF
Estructuras básicas_ conceptos básicos de programación.pdf
PDF
Estructuras básicas_ conceptos básicos de programación.pdf
PPT
Diagramas De Flujo
DOCX
Estructuras básicas conceptos básicos de programación
DOCX
Estructuras básicas conceptos básicos de programación
DOCX
CONCEPTOS DE PROGRAMACIÓN, MÉTODOS ESTADÍSTICOS 11-6
DOCX
Estructuras básicas conceptos básicos de programación
DOCX
Estructuras básicas conceptos basicos de programacion oficial.docx
PDF
Estructuras básicas conceptos básicos de programación (1)
PDF
Trabajo de tecnologia- Reconstruccion.pdf
PDF
Trabajo de tecnologia.docx.pdf
PDF
Trabajo de tecnologia- Reconstruccion.pdf
DOCX
Trabajo de tecnologia.docx
PDF
Giseproi curso de programación - sesión 3 - diagramas de flujo
PDF
Tecnología Periodo 2.pdf
PPTX
Laboratorios1
PPT
principios de algortimos, secuencuas y base de dats
PPT
Sesión 3_Secuencial Principios de Algoritmos.ppt
Informe de pseint
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
Diagramas De Flujo
Estructuras básicas conceptos básicos de programación
Estructuras básicas conceptos básicos de programación
CONCEPTOS DE PROGRAMACIÓN, MÉTODOS ESTADÍSTICOS 11-6
Estructuras básicas conceptos básicos de programación
Estructuras básicas conceptos basicos de programacion oficial.docx
Estructuras básicas conceptos básicos de programación (1)
Trabajo de tecnologia- Reconstruccion.pdf
Trabajo de tecnologia.docx.pdf
Trabajo de tecnologia- Reconstruccion.pdf
Trabajo de tecnologia.docx
Giseproi curso de programación - sesión 3 - diagramas de flujo
Tecnología Periodo 2.pdf
Laboratorios1
principios de algortimos, secuencuas y base de dats
Sesión 3_Secuencial Principios de Algoritmos.ppt
Publicidad

Más de giseproi (20)

PDF
Boletín GeoForAll junio 2021
PDF
GISEPROI - Plantilla Historia de usuario
PDF
Boletín marzo 2020
PDF
Boletín abril 2020
PDF
Boletín mayo 2020
PDF
Boletín GeoForAll Diciembre 2019
PDF
Boletín GeoForAll enero 2020
PDF
Boletín GeoForAll Agosto 2019
PDF
Ingeniería Catastral y Geodesia - Syllabus Programación Básica
PDF
Sua metaverso especializado para el aprendizaje
PDF
Proceso de evaluación
PDF
Giseproi plantilla especificación casos de uso
PDF
Giseproi plantilla vision
PDF
Giseproi curso de programación - sesión 1 - acerca de la programación
PDF
Giseproi curso de programación - sesión 1 a - introducción a la programación
PDF
Giseproi curso de programación - sesión 2 - el concepto de algoritmo
PDF
Giseproi curso de programación - sesión 3 a - diagrama de actividad uml
PDF
Giseproi curso de programación - sesión 4 - sentencias de control de flujo
ODP
Giseproi curso de programación - sesión 6 - datos y operadores
PDF
Giseproi curso de programación - sesión 6 - datos y operadores
Boletín GeoForAll junio 2021
GISEPROI - Plantilla Historia de usuario
Boletín marzo 2020
Boletín abril 2020
Boletín mayo 2020
Boletín GeoForAll Diciembre 2019
Boletín GeoForAll enero 2020
Boletín GeoForAll Agosto 2019
Ingeniería Catastral y Geodesia - Syllabus Programación Básica
Sua metaverso especializado para el aprendizaje
Proceso de evaluación
Giseproi plantilla especificación casos de uso
Giseproi plantilla vision
Giseproi curso de programación - sesión 1 - acerca de la programación
Giseproi curso de programación - sesión 1 a - introducción a la programación
Giseproi curso de programación - sesión 2 - el concepto de algoritmo
Giseproi curso de programación - sesión 3 a - diagrama de actividad uml
Giseproi curso de programación - sesión 4 - sentencias de control de flujo
Giseproi curso de programación - sesión 6 - datos y operadores
Giseproi curso de programación - sesión 6 - datos y operadores

Último (20)

PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
2.0 Introduccion a processing, y como obtenerlo
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Tomo 1 de biologia gratis ultra plusenmas
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
2.0 Introduccion a processing, y como obtenerlo
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Tomo 1 de biologia gratis ultra plusenmas
V UNIDAD - SEGUNDO GRADO. del mes de agosto
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf
Metodologías Activas con herramientas IAG
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Escuelas Desarmando una mirada subjetiva a la educación
Híper Mega Repaso Histológico Bloque 3.pdf
caso clínico iam clinica y semiología l3.pptx
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
biología es un libro sobre casi todo el tema de biología
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf

Giseproi curso de programación - sesión 5 - ejemplos de algoritmos (1)

  • 3. Factorial de un número La variable contador participa en tres sentencias: a. Una asignación: contador=1 b. Una decisión: ¿contador<=numero? c. Un incremento antes del flujo del ciclo. contador=contador+1 Este patrón corresponde a una construcción while. Recordar que un for es un caso especial de un while
  • 4. Factorial de un número. Algoritmo implementado en C utilizando un ciclo while. int calcularFactorial( int numero ) { int factorial: int contador; factorial=1; contador=1; while(contador<=numero) { factorial=factorial*contador; contador=contador+1; } return factorial; }
  • 5. Verificar si un número es primo
  • 6. Verificar si un número es primo int verificarPrimo(int numero){ int primo=1; int divisor; int residuo; divisor=2; do{ residuo=numero%divisor; if(residuo==0){ primo=0; return primo; } divisor=divisor+1; }while(divisor<numero); return primo; }
  • 7. Verificar si un número es primo (Algoritmo II)
  • 8. Determinar si un número es primo (algoritmo II) int esPrimo(int numero){ int divisor=1, residuo, totalDivisores=0; bool primo; do{ residuo=numero%divisor; if(residuo==0){ totalDivisores=totalDivisores+1; } divisor=divisor+1; }while(divisor<=numero); if(totalDivisores<3){ primo=true; }else{ primo=false; } return primo; }
  • 9. Sumar los números primos que existen entre 100 y 20000 Técnica: Divide y Vencerás. Número de algoritmos: 2 Hechos: Ya se tiene un algoritmo que permite determinar si un número es primo o no. La suma se incrementa cada vez que se encuentra un número primo. El algoritmo termina cuando se alcanza el valor del límite superior, en este caso 20000
  • 11. bool verificarPrimo(int numero) { bool primo; int divisor; int residuo; divisor=2; do { residuo=numero%divisor; if(residuo==0) { primo=false; return primo; } divisor=divisor+1; }while(divisor<numero); primo=true; return primo; } int main() { int sumaPrimos=0; int limiteSuperior=20000; int i; bool primo; bool verificarPrimo(int numero); for(i=1;i<=limiteSuperior;i++) { primo=verificarPrimo(i); if(primo==true) { sumaPrimos=sumaPrimos+i; } }; return sumaPrimos; }
  • 12. Calcular la media aritmética de los primeros 30 números primos. Técnica: Divide y Vencerás. Número de algoritmos: 2 Hechos: Ya se tiene un algoritmo que permite determinar si un número es primo o no. La suma se incrementa cada vez que se encuentra un número primo. El ciclo termina cuando la cantidad de números encontrados es 30
  • 14. int verificarPrimo(int numero) { bool primo; int divisor; int residuo; divisor=2; primo=1; do { residuo=numero%divisor if(residuo==0) { primo=0; return primo; } divisor=divisor+1; }while(divisor<numero); return primo; } int main() { int sumaPrimos=0; int contadorPrimos=0; int i; bool primo; bool verificarPrimo(int numero); int media; for(i=1;contadorPrimos<=30;i++) { primo=verificarPrimo(i); if(primo==true) { sumaPrimos=sumaPrimos+i; contadorPrimos++; } }; media=sumaPrimos/30; return media; }
  • 15. Calcular el factorial del tercer número primo que se encuentre en un rango de números dado. Técnica: Divide y Vencerás. Número de algoritmos: 3 Hechos: Ya se tiene un algoritmo que permite determinar si un número es primo o no. Ya se tiene un algoritmo que permite determinar el factorial de un número.
  • 17. Int verificarPrimo(int numero) { bool primo; int divisor; int residuo; divisor=2; primo=1; do { residuo=numero%divisor; if(residuo==0) { primo=0; return primo; } divisor=divisor+1; }while(divisor<numero); return primo; } int factorial( int numero) { int factorial: int i; factorial=1; for(i=1;i<=numero;i++) { factorial=factorial*i; } return factorial; }
  • 18. int main() { int limiteInferior , limiteSuperior, resultado, i=0, numeroPrimo=0; bool esPrimo; int verificarPrimo(int numero); int factorial( int numero); limiteInferior=40; //Valor predeterminado para verificar limiteSuperior=400; //Valor predeterminado para verificar do { If( limiteInferior<=limiteSuperior ){ esPrimo=verificarPrimo( limiteInferior ); If (esPrimo== 1){ numeroPrimo=limiteInferior; i=i+1; } }else{ i=4; // break; } }while(i<3); resultado=factorial(numeroPrimo); return resultado; }
  • 19. Ejercicio: (Sin consultar en Internet) Se tiene una pareja de conejos juntos en un lugar cerrado y se desea saber cuántos son creados a partir de este par cuando su naturaleza es: parir un par cada mes, y los nacidos han de parir, desde el segundo mes, un par también. Crear un algoritmo que permita deducir la cantidad de conejos que existirán después de un número de meses dado. Resuelto por Alejandro de Pisa en 1202 TIP: Determinar de forma “manual” Cuantos pares existirán en el mes 1, 2,3 3,4 y 6....luego deducir un patrón del cual Se pueda derivar un algoritmo.
  • 20. Los contenidos originales en esta obra, se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Unported. Atribución – Compartir igual. De conformidad a esta licencia: Usted es libre para: ● Compartir — copiar y redistribuir el material en cualquier medio o formato ● Adaptar — remezclar, transformar y crear a partir del material Para cualquier propósito, incluso comercialmente Bajo los siguientes términos: ● Atribución — Usted debe darle crédito a esta obra de manera adecuada: si se suministran, usted debe dar el nombre del creador y de las partes atribuidas, un aviso de derechos de autor, una nota de licencia, un aviso legal, y un enlace al material; e indicando si se han realizado cambios. Puede hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que usted o su uso tienen el apoyo del licenciante ● Compartir igual — Si usted mezcla, transforma o crea nuevo material a partir de esta obra, usted podrá distribuir su contribución siempre que utilice la misma licencia que la obra original.. Las marcas, nombres de productos y empresas, logos, figuras, citas, contenidos no originales de GISEPROI y otras referencias; son propiedad de sus respectivos dueños y no están cubiertos por esta licencia.