Guia Lab 21
Guia Lab 21
Guia Lab 21
GUIA DE LABORATORIO #: 21
MATERIA: Programación I
Fecha: 16/05/2024
COMPETENCIAS:
1. Contadores
2. Acumuladores
3. Conversión de tipos de datos (cast)
TEORÍA ASOCIADA:
1. CONTADORES
2. ACUMULADORES
Un acumulador, o totalizador, es una variable que modifica su valor en una cantidad no
constante, generalmente positiva, cada vez que se presenta un evento o una situación
particular.
La expresión general de la variable acumuladora es:
variable = variable + k;
en la que k puede adoptar diferentes valores, en distintas ocasiones.
Las variables contadoras y acumuladoras se usan en muchísimas ocasiones en los
sistemas informáticos, como en el control de las ventas del día, inventarios y stocks en
almacenes, los gastos realizados en alguna institución, cuentas bancarias, etc., etc.
3. CONVERSIÓN DE TIPOS DE DATOS (cast)
La conversión de tipos de datos, permite cambiar el tipo de dato del valor de una literal,
variable o el resultado expresión a otro tipo de dato del que tiene originalmente.
Se distinguen dos casos particulares de conversión:
conversión implícita
conversión explícita
La conversión o cast implícita la realiza el compilador automáticamente, sin necesidad de
ninguna especificación por parte del programador; esta conversión se realiza cuando no
existe modificación del valor original en el tipo de dato destino o cuando no hay pérdida de
precisión en la conversión; por ejemplo, el tipo de dato de los valores de la derecha de los
ejemplos siguientes, automáticamente y correctamente se convierten en los tipos de datos
especificados en la declaración de las variables a la izquierda:
float a = 123;
double b = 2345.5f;
long long c = 98434;
bool d = 25;
char e = 65;
El cast explicito se usa cuando el tipo de dato de origen podría ser alterado o provocar una
pérdida de precisión en valor destino; el compilador no restringe la conversión, pero al existir
ese riesgo, es el programador que asume la responsabilidad, lo que se realiza
especificando explícitamente por medio de uno de las dos sintaxis siguientes:
(tipoDestino) valor; formato cast del lenguaje C
tipoDestino (valor); formato del lenguame C++
por ejemplo:
int a = (int) 123.34;
float b = float (2.34e1);
short c = (short) 23452L;
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
EJERCICIOS RESUELTOS:
EJERCICIO 1.
Escribir un programa que lea un número natural: n (0 < n <= 80), e imprima un triángulo
rectángulo de base y alto igual a n, alineado a la derecha, formado por los dígitos del 0 al 9
de forma consecutiva y cíclica, como se muestra en el ejemplo que sigue:
EJEMPLO DE ENTRADA
6
EJEMPLO DE SALIDA
0
12
345
6789
01234
567890
#include <iostream>
using namespace std;
main()
{
int n, dato=0;
cin>>n;
for(int i=0; i<n; i++)
{
for(int j=n-1; j>=0; j--)
{
if(j<=i)
{
cout<<dato;
dato=++dato%10;
}
else
cout<<" ";
}
cout<<endl;
}
}
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
EJERCICIO 2.
En el siglo XIII, el matemático italiano Leonardo de Pisa, más conocido por Fibonacci
propuso la serie que lleva su nombre, en base al estudio de la reproducción de conejos;
posteriormente se descubrió que esa serie se encuentra presente en varios objetos de la
de la naturaleza, como en los pétalos de las margaritas, en la disposición de las semillas
de los girasoles, en las alcachofas, en los caparazones de algunos moluscos, etc.
La serie de Fibonacci es: 1 1 2 3 5 8 13 21 34 55 89 …, donde los dos primeros términos
son iguales a 1 y a partir del tercer número, cada uno de ellos se obtiene sumando los dos
términos inmediatamente anteriores.
Escribir un programa que lea un número natural: n (0 < n <= 200), e imprima los primeros n
términos de la serie de Fibonacci.
EJEMPLO DE ENTRADA
7
EJEMPLO DE SALIDA
1 1 2 3 5 8 13
#include <iostream>
using namespace std;
int main()
{
int n, a=1, b=1, c;
cin>>n;
if(n==1)
cout<<"1";
else{
cout<<"1 1";
} if(n>2){
for(int i=3; i<=n; i++){
c=a+b;
a=b;
b=c;
cout<<" "<<c;
}
}
cout<<endl;
return 0;
}
EJERCICIO 3.
Es bien sabido que un número natural: n, es múltiplo del 9 cuando se aplica la expresión:
n%9==0 y el resultado es: true; pero antes del advenimiento de las calculadoras, se usaba
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
la técnica de la suma de los dígitos del número: n, tal que al obtener 9 o un múltiplo de 9,
entonces se concluía que n es múltiplo de 9.
Escribir un programa que lea un número natural: n (0 < n <= 9e18) y realice la suma de sus
dígitos y repetir ese procedimiento con el resultado, hasta obtener un resultado de un solo
dígito, luego determinar e imprimir si n es múltiplo de 9 o no lo es.
EJEMPLO DE ENTRADA
29097
sumatoria de los dígitos de un número
29097, es múltiplo de 9.
EJEMPLO DE ENTRADA
7922059822227890
sumatoria de los dígitos de un número
7922059822227890, no es múltiplo de 9.
#include <iostream>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
long long n, nn;
int suma=0;
cin>>n;
nn=n;
while(n>9)
{
while(n>0)
{
suma=suma+n%10;
n=n/10;
}
n=suma;
suma=0;
}
if(n==9)
cout<<nn<<", es múltiplo de 9."<<endl;
else
cout<<nn<<", no es múltiplo de 9."<<endl;
return 0;
}
EJERCICIO 4.
Las calculadoras y computadoras usan series para calcular los resultados de diferentes
operaciones matemática, así las funciones trigonométricas se calculan usando las series
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
de Maclaurin. Escribir un programa que lea un número real: x (-10 < x < 10), y calcule e
imprima el coseno de x (cos(x)), utilizando 15 términos de la serie siguiente:
𝑥2 𝑥4 𝑥6 (−1)𝑛 𝑥 2𝑛
cos(𝑥) = 1 − + − + ⋯+
2! 4! 6! (2𝑛)!
#include <iostream>
#include <math.h>
using namespace std;
main()
{
double x, cos=1, fact=1;
cin>>x;
for(int i=2; i<30; i=i+2){
fact=-i*(i-1)*fact;
cos=cos+pow(x,i)/double(fact);
}
cout<<cos<<endl;
}
EJERCICIO 5.
Escribir un programa que lea un número natural: n (0 < n < 100), e imprima la cantidad total
de círculos que conforman un triángulo completo de lado n. Para los primeros 10 números
naturales, la cantidad de círculos de los triángulos son: 1 3 6 10 15 21 28 36 45 55, como
se muestra en la siguiente figura:
EJEMPLO DE ENTRADA
4
EJEMPLO DE SALIDA
10
EJERCICIO 6.
EJEMPLO DE ENTRADA
6
EJEMPLO DE SALIDA
1.6
EJEMPLO DE ENTRADA
50
EJEMPLO DE SALIDA
1,618034
EJERCICIO 7.
Escribir un programa que lea un número natural: n (1 < n < 80), e imprima el borde de un
rectángulo, formado por asteriscos, con una altura igual a n y una base igual a 2*n, como
se muestra en el ejemplo siguiente:
EJEMPLO DE ENTRADA
5
EJEMPLO DE SALIDA
**********
* *
* *
* *
**********
EJERCICIO 8.
Escribir un programa que lea una cadena: string bin (con un tamaño máximo de 31
caracteres), el que corresponde a un número binario, el que puede tener ceros a la
izquierda; a continuación, lo convierta en su equivalente en base 10 y lo imprima.
EJEMPLO DE ENTRADA
00101
EJEMPLO DE SALIDA
5
EJEMPLO DE ENTRADA
001110001
EJEMPLO DE SALIDA
113
EJERCICIO 9.
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
Escribir un programa que lea un número natural: n (1 < n < 80), e imprima el borde de un
rombo de lados igual a n, que está formado por asteriscos y tiene una disposición vertical,
como se muestra en el ejemplo siguiente:
EJEMPLO DE ENTRADA
4
EJEMPLO DE SALIDA
*
* *
* *
* *
* *
* *
*
EJERCICIO 10.
EJEMPLO DE ENTRADA
6
EJEMPLO DE SALIDA
6 es le factorial de 3
EJEMPLO DE ENTRADA
20
EJEMPLO DE SALIDA
20 no es factorial de ningún número.
EJERCICIO 12.
Escribir un programa que lea un número real: radio (0 < radio < 1e3), que corresponde al
radio de un círculo, cuyo centro se encuentra en el origen de coordenadas del sistema
cartesiano, e imprima la cantidad de puntos (x,y) con valores enteros, que se encuentra
dentro del primer cuadrante del círculo, incluyendo los que se encuentran en los bordes.
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA
EJEMPLO DE ENTRADA
1
EJEMPLO DE SALIDA
3
EJEMPLO DE ENTRADA
2
EJEMPLO DE SALIDA
11