Você está na página 1de 7

Augusto

A. Zimmermann Bus1os U201612356 SOFTWARE PARA INGENIERIA - EL22

Tarea 7:
PROBLEMA 1
Escriba un programa que genere dos arreglos de dos las por tres columnas de forma
aleatoria con valores entre 10 y 90. Estos arreglos deben de mostrarse en la consola. Luego,
deber de mostrarse el resultado de las suma de ambos arreglos elemento a elemento, es
decir el elemento [0][0] del tercer arreglo ser la suma de los dos elementos de la misma
posicin. Muestre sus resultados de la siguiente forma (u1lice ajuste de campo con setw(n)
para que sus resultados sean ordenados):

SOLUCIN:
Algoritmo:
1. Ejecutar los arreglos A y B y la suma de ambos.
2. Mostrar los paso anterior.

Cdigo:
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cmath>

using namespace std;


int main()
{
srand((unsigned)time(NULL));
const int F = 2;
const int C = 3;
int num[F][C];
int num1[F][C];
int num2[F][C];

for (int m = 0; m < F; m++) {
for (int n = 0; n < C; n++) {
num[m][n] = 10+ rand() % (91-10);
num1[m][n] = 10 + rand() % (91-10);
num2[m][n] = num[m][n]+num1[m][n] ;
}
}


cout<<" ARREGLO A\t\tARREGLO B\t\tSUMA A + B" << endl;
cout<<" =========\t\t=========\t\t==========";

cout << "\n ";
for (int m = 0; m < F; m++) {
for (int n = 0; n < C; n++) {
cout << fixed << left << setw(4) << num[m][n];
}
cout<<"\t";
for(int k=0;k<C;k++)
{
cout<< fixed << left << setw(4) << num1[m][k];
}
cout<<"\t";
for(int x=0;x<C;x++)
{
cout<< fixed << left << setw(4) << num2[m][x];
}

cout<<endl<<" ";
}
}

Ejecucin:

___________________________________________________________________________

PROBLEMA 2
Genere un arreglo aleatorio con N valores reales entre 0.0 y 5.0, que representarn valores
de voltajes. Su programa deber contar el nmero de valores que se encuentren dentro del
rango 1l de rangos TTL. Es decir, todos los valores entre 0.0 y 0.8 son considerados como
cero lgico, mientras todos los valores entre 2.0 y 5.0 son considerados como uno lgico.
Puede encontrar alguna forma de probar que su programa funciona sin tener que mostrar
los valores y contarlos manualmente?

SOLUCIN:
Algoritmo:
1. Ingresar el valor de prueba
2. Calcular los valores lgicos.
3. Mostrar si el valor es un cero lgico o uno lgico.

Cdigo:
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cmath>
using namespace std;

#define maximo 5
#define minimo 0
int main(int argc, char** argv) {
srand((unsigned)time(NULL ));
int numval=0;
cout<<"Ingrese el nmero de valores de prueba: ";
cin>>numval;
cout<<"Generando valores de prueba"<<endl;
float *valores=(float*)malloc(sizeof(float)*numval);


for (int k=0;k<numval;k++)
{
valores[k]=( rand()%(maximo*100+1))*1.0/100;

if (valores[k]>=0 && valores[k]<=0.8)
{
cout << "Valores de 0 lgico: "<< endl;

}
else if(valores[k] >=2 && valores[k]<=5)
{
cout << "Valores de 1 lgico: "<<endl;

}

else
{
cout << "El valor " << valores[k]<< " no esta dentro de el estimado
del TTL"<<endl;
break;
}

}
return 0;
}

Ejecucin:

___________________________________________________________________________

PROBLEMA 3
Escriba un programa que incluya dos funciones llamadas calc_prom() y varianza(). La funcin
calc_prom() deber calcular y devolver el promedio de los valores almacenados en el arreglo
llamado valores_prueba. El arreglo deber ser declarado en main() e incluir los valores 89,
95, 72, 83, 99, 54, 86, 75, 92, 73, 79, 75, 82, 73. La funcin varianza() deber calcular y
devolver la varianza de los datos. La varianza se ob1ene restando el promedio de cada valor
en valores_prueba, elevando al cuadrado los valores obtenidos, sumndolos y dividindolos
entre el nmero de elementos en valores_prueba. Los valores devueltos de calc_prom() y
varianza() debern desplegarse usando instrucciones cout en main().

SOLUCIN:
Algoritmo:
1. Correr el programa
2. Calcular los valores de las funciones calc_prom() y varianza().
3. Mostrar los resultados del paso 2.

Cdigo:
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cmath>
using namespace std;
float calc_prom(int valores_prueba[14]);
float varianza(int valores_prueba[14],int val);

int main()
{

float prom = 0;
int val=14;
float pro_final;
int valores_prueba[]={89,95,72,83,99,54,86,75,92,73,79,75,82,73};

pro_final=calc_prom(valores_prueba);

cout<<"El promedio es : "<<pro_final<<endl;

float var=varianza(valores_prueba,val);
cout<<"La varianza es : "<<var<<endl;



return 0;
}
float calc_prom(int valores_prueba[14]){

float prom;
for(int i=0;i<14;i++){
prom= prom + valores_prueba[i];
}
prom=prom/14;
return prom;
}
float varianza(int valores_prueba[14],int val){

float media=calc_prom(valores_prueba);
float x=0;
for (int k=0;k<val;k++)
{
x+= pow( (valores_prueba[k]-media),2)/val;
}

return x;
}

Ejecucin:

___________________________________________________________________________

PROBLEMA 4
** Escriba un programa que muestre el Tringulo de Pascal para un nmero de las. Por
ejemplo, si ingresa 5 las, el programa mostrar el siguiente resultado:

Esto, que parece una tarea muy compleja, se vuelve muy sencillo si se considera la
verdadera denicin del Tringulo de Pascal, es decir una matriz donde cada elemento es el
coeciente binomial o combinacin de sus coordenadas.
Para esto cree un arreglo de nxn (donde n ser el nmero de las) donde todos los
elementos sern cero. Luego, debe hallar el coeciente binomial para el elemento 1 ([0][0])
de la primera la luego debe hallar los coecientes binomiales para los elementos 1 y 2 ([1]
[0] y [1][1]), y as sucesivamente (logra ver el patrn en la ejecucin?).
El coeciente binomial se calcula de la forma: C(n,r) = n! / r! (n-r)! donde n y r sern las
coordenadas de cada elemento. Por ejemplo, para el elemento [0][0] se tendr que C(n,r) =
1 (es decir, solo hay una forma de ordenar el par de nmeros 0,0). Sin embargo, en la tercera
la se tendr que C(2,0) = 1, C(2,1) = 2 y C(2,2) = 1. Una vez que cambie los coecientes a sus
valores deni1vos, imprima estos valores, evitando los ceros para que se muestre como en
la gura.
Debe de crear dos funciones, una factorial() y la otra binomial() para ayudarlo en el clculo
de sus resultados.
Consejo: obtenga el resultado de forma manual para entender cmo es que se generan los
valores del Tringulo.

SOLUCIN:
Algoritmo:
1. Pedir al usuario ingresar el nmero de las
2. Calcular el Trigulo de Pascal referente al nmero de lneas.
3. Mostramos el paso 2.
Cdigo:
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
long factorial(int n)
{
if (n==1){
return 1;
}
else if(n==0){
return 1;
}
long cuen=1;
for (int x=n ; x>=2 ; x--){
cuen=cuen*x;
}
return cuen;
}
long coefBinomial(int n,int r){
long num= factorial(n)/( factorial(r) * factorial(n-r) );

return num;
}

int main(){

int tam;
cout<<"Ingrese el numero de filas: ";
cin>>tam;
long mat[tam][tam];

for (int k=0;k<tam;k++)
{
for (int l=0;l<tam;l++)
{
mat[k][l]=0;
}
}

for (int i=0;i<tam;i++)
{
for (int l=0;l<i+1;l++)
{
mat[i][l]=coefBinomial(i,l);
cout<<mat[i][l]<<" ";
}
cout<<endl;
}
return 0;
}


Ejecucin:

Você também pode gostar