SlideShare una empresa de Scribd logo
Funciones y Recursividad
Ramiro Estigarribia Canese
Programas Reales
➔ La mayoría de los programas que resuelven
problemas reales son más grandes que los
programas que se presentan en los primeros
capítulos.
➔ La experiencia ha demostrado que la mejor forma
de desarrollar y mantener un programa extenso es
construirlo a partir de piezas (o componentes)
simples y pequeñas.
➔ A esta técnica se le conoce como divide y
vencerás.
Componentes de los
programas en C++
➔ Por lo general, los programas en C++ se escriben
mediante la combinación de nuevas funciones y
clases que escribimos con funciones disponibles en
C++.
➔ La Biblioteca estándar de C++ proporciona una
extensa colección de funciones para realizar
cálculos matemáticos, manipulación de texto,
entrada/salida, comprobación de errores y otras
operaciones.
➔ Esto facilita el trabajo del programador, ya que
estas funciones proporcionan muchas de las
herramientas que necesita.
¿Qué Permiten
las Funciones?
➔ Las funciones permiten dividir un programa en
módulos.
➔ Las instrucciones se escriben sólo una vez, y se
pueden reutilizar muchas veces.
➔ Se facilita el proceso de desarrollo de programas al
construir a partir de piezas pequeñas y simples.
➔ Permite reutilización de software: utilizar las
funciones existentes como bloques de construcción
para crear nuevos programas.
Funciones matemáticas de
la biblioteca
➔ Utilizamos la función pow del archivo de
encabezado <cmath> para elevar un valor a una
potencia.
➔ Introduciremos aquí varias funciones del archivo de
encabezado <cmath> para presentar el concepto
de las funciones globales que no pertenecen a una
clase específica.
➔ El archivo de encabezado <cmath> proporciona
una colección de funciones que nos permiten
realizar cálculos matemáticos comunes.
➔ Por ejemplo, puede calcular la raíz cuadrada de
900.0 con la siguiente llamada a la función:
La clase Math
➔ La clase Math cuenta con una colección de
métodos que nos permiten realizar cálculos
matemáticos.
➔ Por ejemplo, podemos calcular la raíz cuadrada de
900 con una llamada al siguiente método:
sqrt(900). Resultado = 30.0.
➔ El método sqrt recibe un argumento de tipo double
y devuelve el resultado.
➔ Para imprimir el valor de la llamada anterior al
método en una ventana de comandos:
➔ cout << sqrt(900);
1.Raiz Cuadrada
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int numero, raiz;
cout << "Ingrese 1 numero" << endl;
cin >> numero;
raiz=sqrt(numero);
cout << "La raiz es:" << raiz;
return 0;
}
Funciones con varios
Parámetros
//2.Función que calcula el cuadrado de un número.
#include <iostream>
using namespace std;
int cuadrado(int numero)
{ return numero*numero; }
int main()
{
int numero,resultado;
cout << "Ingrese 1 numero" << endl;
cin >> numero;
resultado=cuadrado(numero);
cout << "El cuadrado es:" << resultado;
return 0;
}
¿Qué es una Función?
➔ Es un conjunto de líneas de código que realizan
una tarea específica y puede retornar un valor.
➔ Las funciones pueden tomar parámetros que
modifiquen su funcionamiento.
➔ Las funciones son utilizadas para descomponer
grandes problemas en tareas simples.
➔ Cuando una función es invocada se le pasa el
control a la misma, una vez que esta finalizó con su
tarea el control es devuelto al punto desde el cual
la función fue llamada.
Random
➔ Se puede crear un generador de números
aleatorios de la siguiente manera:
sorteo = rand( );
➔ Después, el generador de números aleatorios
puede usarse para generar valores boolean, byte,
float, double, int, long y gaussianos.
➔ El método nextInt de la clase Random genera un
valor int aleatorio en el rango de –2.147.483.648 a
+2.147.483.647.
➔ Cualquier valor en ese rango debería tener una
oportunidad de salir sorteado.
3.Programa que lanza un
dado 5 veces
#include <iostream>
#include <cstdlib> // Función para rand
using namespace std;
int main()
{
for (int contador=1; contador<=5; contador++)
{
cout << (1 + rand()%6 ) << " "; //muestra el valor generado
} // fin de for
return 0;
}
//4.Sortea un número, y compara con el valor ingresado.
#include <iostream>
#include <cstdlib> // Función para rand
#include <ctime> // Función para tiempo
using namespace std;
int main()
{
srand(time(0)); //Para que el sorteo distinto siempre.
int numero, resultado;
cout << "Elija un número del 1 al 6:" << endl;
cin >> numero;
resultado=1+rand()%6;
if (numero==resultado)
cout << "Felicitaciones, ganaste" << endl;
else
cout << "Lastimosamente perdiste: " << resultado;
return 0;
}
Recursividad
➔ Los programas que hemos visto están
estructurados generalmente como funciones que se
llaman entre sí, de una manera disciplinada y
jerárquica.
➔ Para algunos problemas, es conveniente hacer que
las funciones se llamen a sí mismas.
➔ Una función recursiva es una función que se llama
a sí misma.
5.Factorial de un número.
#include <iostream>
using namespace std;
int main()
{
int num=3,fact=1;
for(int i=1; i<=num; i++)
{
fact = fact * i;
}
cout << "Su factorial es: " << fact;
return 0;
}
//6.Factorial utilizando un método recursivo.
#include <iostream>
using namespace std;
int factorial(int n)
{
if(n<2)
return 1;
else
return n*factorial(n-1);
}
int main()
{
int numero;
cout << "Introduce un numero:" << endl;
cin >> numero;
cout << "El resultado es:" << factorial(numero);
return 0;
}

Más contenido relacionado

La actualidad más candente

Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
Funciones de Bibliotecas y Modulos en Programacion
Funciones de Bibliotecas y Modulos en Programacion Funciones de Bibliotecas y Modulos en Programacion
Funciones de Bibliotecas y Modulos en Programacion
Fernando Solis
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
Germania Rodriguez
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
Mariela Cabezas
 
SALTO CONDICIONAL
SALTO CONDICIONALSALTO CONDICIONAL
SALTO CONDICIONAL
Jorge Paredes Toledo
 
Revisando la jerarquía de chomsky
Revisando la jerarquía de chomskyRevisando la jerarquía de chomsky
Revisando la jerarquía de chomsky
Ivan Vladimir Meza-Ruiz
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
Eduardo Chavez Vasquez
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Juan Carlos Martinez Garcia
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
Prob resueltost3 mapas k
Prob resueltost3 mapas kProb resueltost3 mapas k
Prob resueltost3 mapas k
CECYTEG
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de boole
mauricio suarez
 
Salto condicional
Salto condicionalSalto condicional
Salto condicional
Vannesa Salazar
 
Unidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formalesUnidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formales
Raul Interian
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
Christopher Bonilla Noguera
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerás
loco8888
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
Alvaro Enrique Ruano
 

La actualidad más candente (20)

Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
Funciones de Bibliotecas y Modulos en Programacion
Funciones de Bibliotecas y Modulos en Programacion Funciones de Bibliotecas y Modulos en Programacion
Funciones de Bibliotecas y Modulos en Programacion
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
SALTO CONDICIONAL
SALTO CONDICIONALSALTO CONDICIONAL
SALTO CONDICIONAL
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Prueba de corridas arriba y abajo de la media
Prueba de corridas arriba y abajo de la mediaPrueba de corridas arriba y abajo de la media
Prueba de corridas arriba y abajo de la media
 
Árboles de decisión y listas
Árboles de decisión y listasÁrboles de decisión y listas
Árboles de decisión y listas
 
Revisando la jerarquía de chomsky
Revisando la jerarquía de chomskyRevisando la jerarquía de chomsky
Revisando la jerarquía de chomsky
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
Prob resueltost3 mapas k
Prob resueltost3 mapas kProb resueltost3 mapas k
Prob resueltost3 mapas k
 
Algebra de boole
Algebra de booleAlgebra de boole
Algebra de boole
 
Salto condicional
Salto condicionalSalto condicional
Salto condicional
 
Unidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formalesUnidad 6 introduccion a los lenguajes formales
Unidad 6 introduccion a los lenguajes formales
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerás
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 

Destacado

RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
Ing SC B
 
Recursividad
RecursividadRecursividad
Recursividad
RecursividadRecursividad
Recursividad
betzy
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: RecursividadYanahui Bc
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
Catalan
CatalanCatalan
R E L A C I O N E S D E R E C U R R E N C I A
R E L A C I O N E S  D E  R E C U R R E N C I AR E L A C I O N E S  D E  R E C U R R E N C I A
R E L A C I O N E S D E R E C U R R E N C I Ajhonricardo
 
Cómo podemos entender la ciencia yoisy
Cómo podemos entender la ciencia yoisyCómo podemos entender la ciencia yoisy
Cómo podemos entender la ciencia yoisyyoisysanchezmiranda
 
Unidad 4, investigacion
Unidad 4, investigacionUnidad 4, investigacion
Unidad 4, investigacion
erwin_alexander
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clases
Ramiro Estigarribia Canese
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivosfeytho
 
Programación Modular
Programación ModularProgramación Modular
Programación Modularguestefc95b
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
erwin_alexander
 
Metodología de la Investigación - Unidad 3 (Parte 1)
Metodología de la Investigación - Unidad 3 (Parte 1)Metodología de la Investigación - Unidad 3 (Parte 1)
Metodología de la Investigación - Unidad 3 (Parte 1)
Ricardo Cuberos Mejía
 
Programación modular
Programación modularProgramación modular
Programación modular
Reina Rodriguez
 
PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++
KarenAlmanza
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
Franco Guamán
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyradaguestefc95b
 
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADOEL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
CARLOS MASSUH
 

Destacado (20)

RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: Recursividad
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Catalan
CatalanCatalan
Catalan
 
R E L A C I O N E S D E R E C U R R E N C I A
R E L A C I O N E S  D E  R E C U R R E N C I AR E L A C I O N E S  D E  R E C U R R E N C I A
R E L A C I O N E S D E R E C U R R E N C I A
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Cómo podemos entender la ciencia yoisy
Cómo podemos entender la ciencia yoisyCómo podemos entender la ciencia yoisy
Cómo podemos entender la ciencia yoisy
 
Unidad 4, investigacion
Unidad 4, investigacionUnidad 4, investigacion
Unidad 4, investigacion
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clases
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Programación Modular
Programación ModularProgramación Modular
Programación Modular
 
2.1 recursividad
2.1 recursividad2.1 recursividad
2.1 recursividad
 
Metodología de la Investigación - Unidad 3 (Parte 1)
Metodología de la Investigación - Unidad 3 (Parte 1)Metodología de la Investigación - Unidad 3 (Parte 1)
Metodología de la Investigación - Unidad 3 (Parte 1)
 
Programación modular
Programación modularProgramación modular
Programación modular
 
PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADOEL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
EL PROBLEMA DE INVESTIGACIÓN DE LA TESIS DE GRADO
 

Similar a 6.funciones y recursividad en c++

Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
estefania loredo cortes
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacion
sandra gutierrez
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++ Ronal Palomino
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecución
UVM
 
Ejercicios de programacion if - switch-case
Ejercicios de programacion   if  -   switch-caseEjercicios de programacion   if  -   switch-case
Ejercicios de programacion if - switch-case
Guillermo Viaje
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 
De algoritmo a programa en c++
De algoritmo a programa en c++De algoritmo a programa en c++
De algoritmo a programa en c++
maribelduran
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
Linder Sandi Rengifo
 
5.instrucciones de control en c++ parte 2
5.instrucciones de control en c++  parte 25.instrucciones de control en c++  parte 2
5.instrucciones de control en c++ parte 2
Ramiro Estigarribia Canese
 
IF-ELSE EN Csharp C#
IF-ELSE EN Csharp C#IF-ELSE EN Csharp C#
IF-ELSE EN Csharp C#
JORGE GIRALDO
 
Lenguajec(1)
Lenguajec(1)Lenguajec(1)
Lenguajec(1)
Luis Pérez
 
Numeros de armstrong en c programacion estructurada
Numeros de armstrong en c programacion estructuradaNumeros de armstrong en c programacion estructurada
Numeros de armstrong en c programacion estructurada
AndreyAraya5
 
2.introducción a las aplicaciones en c++
2.introducción a las aplicaciones en c++2.introducción a las aplicaciones en c++
2.introducción a las aplicaciones en c++
Ramiro Estigarribia Canese
 

Similar a 6.funciones y recursividad en c++ (20)

Manual.es
Manual.esManual.es
Manual.es
 
Lenguaje c neo
Lenguaje c neoLenguaje c neo
Lenguaje c neo
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 
Intro2
Intro2Intro2
Intro2
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacion
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecución
 
Ejercicios de programacion if - switch-case
Ejercicios de programacion   if  -   switch-caseEjercicios de programacion   if  -   switch-case
Ejercicios de programacion if - switch-case
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
De algoritmo a programa en c++
De algoritmo a programa en c++De algoritmo a programa en c++
De algoritmo a programa en c++
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
 
5.instrucciones de control en c++ parte 2
5.instrucciones de control en c++  parte 25.instrucciones de control en c++  parte 2
5.instrucciones de control en c++ parte 2
 
6.Métodos en Java
6.Métodos en Java6.Métodos en Java
6.Métodos en Java
 
IF-ELSE EN Csharp C#
IF-ELSE EN Csharp C#IF-ELSE EN Csharp C#
IF-ELSE EN Csharp C#
 
07 funciones
07 funciones07 funciones
07 funciones
 
Lenguajec(1)
Lenguajec(1)Lenguajec(1)
Lenguajec(1)
 
Viernes Tecnicos DTrace
Viernes Tecnicos DTraceViernes Tecnicos DTrace
Viernes Tecnicos DTrace
 
Numeros de armstrong en c programacion estructurada
Numeros de armstrong en c programacion estructuradaNumeros de armstrong en c programacion estructurada
Numeros de armstrong en c programacion estructurada
 
2.introducción a las aplicaciones en c++
2.introducción a las aplicaciones en c++2.introducción a las aplicaciones en c++
2.introducción a las aplicaciones en c++
 
Tutorial c++
Tutorial c++Tutorial c++
Tutorial c++
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
Ramiro Estigarribia Canese
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
Ramiro Estigarribia Canese
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
Ramiro Estigarribia Canese
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
Ramiro Estigarribia Canese
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
Ramiro Estigarribia Canese
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
Ramiro Estigarribia Canese
 
Servicios web
Servicios webServicios web
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
Ramiro Estigarribia Canese
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
Ramiro Estigarribia Canese
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
Ramiro Estigarribia Canese
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
Ramiro Estigarribia Canese
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
Ramiro Estigarribia Canese
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
Ramiro Estigarribia Canese
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
Ramiro Estigarribia Canese
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
Ramiro Estigarribia Canese
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
Ramiro Estigarribia Canese
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
Ramiro Estigarribia Canese
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
Ramiro Estigarribia Canese
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
Ramiro Estigarribia Canese
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
Ramiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 

Último (20)

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 

6.funciones y recursividad en c++

  • 1. Funciones y Recursividad Ramiro Estigarribia Canese
  • 2. Programas Reales ➔ La mayoría de los programas que resuelven problemas reales son más grandes que los programas que se presentan en los primeros capítulos. ➔ La experiencia ha demostrado que la mejor forma de desarrollar y mantener un programa extenso es construirlo a partir de piezas (o componentes) simples y pequeñas. ➔ A esta técnica se le conoce como divide y vencerás.
  • 3. Componentes de los programas en C++ ➔ Por lo general, los programas en C++ se escriben mediante la combinación de nuevas funciones y clases que escribimos con funciones disponibles en C++. ➔ La Biblioteca estándar de C++ proporciona una extensa colección de funciones para realizar cálculos matemáticos, manipulación de texto, entrada/salida, comprobación de errores y otras operaciones. ➔ Esto facilita el trabajo del programador, ya que estas funciones proporcionan muchas de las herramientas que necesita.
  • 4. ¿Qué Permiten las Funciones? ➔ Las funciones permiten dividir un programa en módulos. ➔ Las instrucciones se escriben sólo una vez, y se pueden reutilizar muchas veces. ➔ Se facilita el proceso de desarrollo de programas al construir a partir de piezas pequeñas y simples. ➔ Permite reutilización de software: utilizar las funciones existentes como bloques de construcción para crear nuevos programas.
  • 5. Funciones matemáticas de la biblioteca ➔ Utilizamos la función pow del archivo de encabezado <cmath> para elevar un valor a una potencia. ➔ Introduciremos aquí varias funciones del archivo de encabezado <cmath> para presentar el concepto de las funciones globales que no pertenecen a una clase específica. ➔ El archivo de encabezado <cmath> proporciona una colección de funciones que nos permiten realizar cálculos matemáticos comunes. ➔ Por ejemplo, puede calcular la raíz cuadrada de 900.0 con la siguiente llamada a la función:
  • 6. La clase Math ➔ La clase Math cuenta con una colección de métodos que nos permiten realizar cálculos matemáticos. ➔ Por ejemplo, podemos calcular la raíz cuadrada de 900 con una llamada al siguiente método: sqrt(900). Resultado = 30.0. ➔ El método sqrt recibe un argumento de tipo double y devuelve el resultado. ➔ Para imprimir el valor de la llamada anterior al método en una ventana de comandos: ➔ cout << sqrt(900);
  • 7.
  • 8. 1.Raiz Cuadrada #include <iostream> #include <math.h> using namespace std; int main() { int numero, raiz; cout << "Ingrese 1 numero" << endl; cin >> numero; raiz=sqrt(numero); cout << "La raiz es:" << raiz; return 0; }
  • 9. Funciones con varios Parámetros //2.Función que calcula el cuadrado de un número. #include <iostream> using namespace std; int cuadrado(int numero) { return numero*numero; } int main() { int numero,resultado; cout << "Ingrese 1 numero" << endl; cin >> numero; resultado=cuadrado(numero); cout << "El cuadrado es:" << resultado; return 0; }
  • 10. ¿Qué es una Función? ➔ Es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. ➔ Las funciones pueden tomar parámetros que modifiquen su funcionamiento. ➔ Las funciones son utilizadas para descomponer grandes problemas en tareas simples. ➔ Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
  • 11. Random ➔ Se puede crear un generador de números aleatorios de la siguiente manera: sorteo = rand( ); ➔ Después, el generador de números aleatorios puede usarse para generar valores boolean, byte, float, double, int, long y gaussianos. ➔ El método nextInt de la clase Random genera un valor int aleatorio en el rango de –2.147.483.648 a +2.147.483.647. ➔ Cualquier valor en ese rango debería tener una oportunidad de salir sorteado.
  • 12. 3.Programa que lanza un dado 5 veces #include <iostream> #include <cstdlib> // Función para rand using namespace std; int main() { for (int contador=1; contador<=5; contador++) { cout << (1 + rand()%6 ) << " "; //muestra el valor generado } // fin de for return 0; }
  • 13. //4.Sortea un número, y compara con el valor ingresado. #include <iostream> #include <cstdlib> // Función para rand #include <ctime> // Función para tiempo using namespace std; int main() { srand(time(0)); //Para que el sorteo distinto siempre. int numero, resultado; cout << "Elija un número del 1 al 6:" << endl; cin >> numero; resultado=1+rand()%6; if (numero==resultado) cout << "Felicitaciones, ganaste" << endl; else cout << "Lastimosamente perdiste: " << resultado; return 0; }
  • 14. Recursividad ➔ Los programas que hemos visto están estructurados generalmente como funciones que se llaman entre sí, de una manera disciplinada y jerárquica. ➔ Para algunos problemas, es conveniente hacer que las funciones se llamen a sí mismas. ➔ Una función recursiva es una función que se llama a sí misma.
  • 15. 5.Factorial de un número. #include <iostream> using namespace std; int main() { int num=3,fact=1; for(int i=1; i<=num; i++) { fact = fact * i; } cout << "Su factorial es: " << fact; return 0; }
  • 16. //6.Factorial utilizando un método recursivo. #include <iostream> using namespace std; int factorial(int n) { if(n<2) return 1; else return n*factorial(n-1); } int main() { int numero; cout << "Introduce un numero:" << endl; cin >> numero; cout << "El resultado es:" << factorial(numero); return 0; }