Introducción:
Descansando un poco de los ejercicios de física, hoy resolveremos un ejercicio de la materia de introducción a la informática, espero explicarlo lo mejor que pueda, así que comencemos.
Problema:
Generar y mostrar los primeros N términos de la siguiente serie: 1,2,3,4,5,2,1,2,3,4,5,2,1,2,3,4,5,2.
Solución:
Podemos empezar aclarando hasta que número de la serie debe mostrar, si el valor de N es:
N=6
devolverá: 1,2,3,4,5,2
N=1
devolverá: 1
N=12
devolverá: 1,2,3,4,5,2,1,2,3,4,5,2
N=4
devolverá: 1,2,3,4
N=18
devolverá: 1,2,3,4,5,2,1,2,3,4,5,2,1,2,3,4,5,2
El patrón de esta serie no es tan complejo, solo hay que poner un dos cada cinco números, los números anteriores al dos devén ir incrementando desde el uno al cinco y los números posteriores al dos igual, incrementa desde el un al cinco.
Primera parte:
Para ir incrementando los números de uno en uno hasta el cinco, a la variable le sumamos uno y detenemos el proceso cuando llegue a cinco, también reiniciamos la variable en ese momento para que pueda incrementar nuevamente.
La variable en este caso es m2 y su valor es 0.
Primera tanda:
m2=0
m2 es igual a 5—> no
m2=m2+1
Segunda tanda:
m2=1
m2 es igual a 5—> no
m2=m2+1
Tercera tanda:
m2=2
m2 es igual a 5—> no
m2=m2+1
Cuarta tanda:
m2=3
m2 es igual a 5—> no
m2=m2+1
Quinta tanda:
m2=4
m2 es igual a 5—> no
m2=m2+1
Sexta tanda:
m2=5
m2 es igual a 5—> si
m2=0
Segunda parte:
Para agregarle el dos tenemos que concatenar m2 en otra variable que nos permita poner la «coma», para usarla de separador, cada que m2 sea igual a cinco concatenaremos el dos y reiniciaremos m2 en 0.
La variable es serie y no tiene almacenado nada dentro.
Primera tanda:
m2=0
m2 es igual a 5—> no
m2=m2+1
serie=m2+»,»+serie
Segunda tanda:
m2=1
m2 es igual a 5—> no
m2=m2+1
serie=m2+»,»+serie
Tercera tanda:
m2=2
m2 es igual a 5—> no
m2=m2+1
serie=m2+»,»+serie
Cuarta tanda:
m2=3
m2 es igual a 5—> no
m2=m2+1
serie=m2+»,»+serie
Quinta tanda:
m2=4
m2 es igual a 5—> no
m2=m2+1
serie=m2+»,»+serie
Sexta tanda:
m2=5
m2 es igual a 5—> si
serie=serie+2+»,»
m2=0
Todo esto lo expresaremos mejor en pseudocódigo, para tener una idea más clara del funcionamiento.
Pedir n m1=1 m2=0 serie=vacío mientras(n>=m1){ m1=m1+1 si(m2=5){ serie=serie+2+"," m2=0 }falso{ m2=m2+1 serie=serie+m2+"," } } retorna serie
Aquí les dejo el código escrito en c++, por si desean probar el código directamente:
Donde:
- m1 vale 0.
- n es la cantidad de números que retornara.
- m2 incrementara hasta llegar a 5.
- serie es una variable de tipo cadena o string.
#include <iostream> #include <string> using namespace std; int main(){ int m1,m2,n; m1=1; m2=0; string serie=""; cout<< "por favor ingrese un número: "; cin>>n; while(n>=m1){ m1=m1+1; if(m2==5){ serie=serie+to_string(2)+","; m2=0; }else{ m2=m2+1; serie=serie+to_string(m2)+","; } } cout<< serie; cout <<"\n"<<endl; return 0; }
Si, encuentras algún error por favor dejalo en los comentarios, para que pueda rectificar el ejercicio.