Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Guia Lab 21

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”

FACULTAD DE CIENCIAS Y TECNOLOGIA


CARRERA DE INGENIERIA INFORMÁTICA

GUIA DE LABORATORIO #: 21

MATERIA: Programación I
Fecha: 16/05/2024

COMPETENCIAS:

En esta guía se realizará la descripción y aplicaciones de los siguientes elementos de


programación:

1. Contadores
2. Acumuladores
3. Conversión de tipos de datos (cast)

TEORÍA ASOCIADA:

1. CONTADORES

En programación, un contador es una variable que modifica su valor en una cantidad


constante k, que generalmente es 1, cada vez que se presenta un evento a una situación
particular a tomar en cuenta.
La modificación puede incrementar o decrementar el valor de la variable contadora.
Es usual que la variable contadora se inicialice en 0.
La expresión general de una variable contadora que se modifica en una cantidad k, es:
variable = variable + k;
Cuando k es 1 (ó -1), es conveniente usar los siguientes operadores abreviados:
variable++; // post incremento, se usa la variable y posteriormente se incrementa.
variable--; // post decremento, se usa la variable y posteriormente se decrementa.
++variable; // pre incremento, se incrementa la variable y después se la usa.
--variable; // pre decremento, se decrementa la variable y después se la usa.
Para ilustrar las diferencias de los operadores abreviadas, considere las diferencias de las
salidas de los dos códigos siguientes:
int a=2, b=5;
cout<<a++<<" "<<++b<<endl; // 2 6
cout<<a<<" "<<b<<endl; // 3 6

int a=2, b=5;


cout<<++a<<" "<<b++<<endl; // 3 5
cout<<a<<" "<<b<<endl; // 3 6
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA

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

char d = char (122);


La alteración del valor en el destino se presenta cuando el rango del tipo de dato destino
no contiene al valor de origen, como en los siguientes casos:
int a = (int) 12.234e50;
float b = float (2.34e300);
short c = (short) 2345223472834L;
char d = char (1224344);

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;
}

EJERCICIOS PROPUESTOS PARA RESOLVER EN SALA:

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.

Otra interesante característica de la serie de Fibonacci es que la división de un número de


la serie dividido entre el inmediato anterior da un valor aproximado al número de oro
UNIVERSIDAD AUTONOMA “JUAN MISAEL SARACHO”
FACULTAD DE CIENCIAS Y TECNOLOGIA
CARRERA DE INGENIERIA INFORMÁTICA

(denominado también proporción o número áureo) que es igual a 1.618034 y que se


considera está relacionado con la belleza.
Escribir un programa que lea un número natural: n (1 < n < 100) e imprima la división del n-
ésimo / (n-1)ésimo términos de la serie de Fibonacci.

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
**********
* *
* *
* *
**********

EJERCICIOS PROPUESTOS PARA RESOLVER EXTRACLASE:

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.

Repetir el problema 4 de esta guía, para calcular el seno de un número x. La serie de


Maclaurin para el seno es:
𝑥3 𝑥5 𝑥7 (−1)𝑛 𝑥 2𝑛+1
sin(𝑥) = 𝑥 − + − + ⋯ +
3! 5! 7! (2𝑛 + 1)!
EJERCICIO 11.

El factorial de un número natural: n, se define como: n! = 1*2*3*4*…*n; así por ejemplo:


0! = 1, por definición
1! = 1
2! = 1*2 = 2
3! = 1*2*3 = 6
4! = 1*2*3*4 = 24
….
Escribir un programa que lea un número natural: n (0 < n < 1e7), e imprima si n es el factorial
de algún número o no lo es, como se muestra en los ejemplos siguientes.

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

También podría gustarte