Está en la página 1de 12

INFORME DE TRABAJO 1

CB411O Ciclo 2016-2


UNI - FIEE
Trabajo 1
1. Escriba un programa que muestre todas las permutaciones del 1 a n. Por
ejemplo si n=3 debe obtenerse: 123 132 213 231 321 312.

a. Diagrama de Flujo:

b. Cdigo fuente comentado:

#include<iostream>
using namespace std;
int factorial(int n);
int main(){
int numero;
cout<<ingrese el numero para hacer la permutacin de 1 hasta n;
cin>>numero;
int*val=new int[numero];
for(int i=0;i<numero;i++){
val[i]=i+1;
}
int b;//definimos un valor
int cnt=0;
for (int i=0 ;i< factorial(numero)/2;i++){
cnt++;
b=val[i%numero];
val[i%numero]=val[(i+1)%numero];
val[(i+1)%numero]=b;
cout<< cnt << " ";
for (int j=0; j<numero;j++){
cout<< val[j];
}
cout << endl;
cnt++;
cout<< cnt << " ";

for(int j=numero-1 ; j>=0 ;j--){


cout<<val[j];
}
cout<< endl;
}
return 0;
}
int factorial(int numero){
if(numero==1){
return 1;
}
else{
return factorial (numero-1)*numero;
}
}

c. Compilador Utilizado: Neatbeans IDE 8.0.2

2. Una aplicacin interesante de las computadoras es dibujar grficos


convencionales y de barra (algunas veces denominado histogramas).
Escriba un programa que 5 nmeros cada uno entre 1 y 30 .por cada
nmero ledo, su programa debe imprimir el nmero y dibujar ese
nmero usando asteriscos adyacentes.
Por ejemplo si su programa lee 7 debe mostrar

7 *******

a. Diagrama de Flujo:

b. Cdigo Fuente:
#include<stdio.h>
int main(){
int a;
int i;
for(int b=0;b<5;b++){
printf("ingrese un numero entre 1 y 30\n");
scanf("%i",&a);

i=1;
while(i<=a){
printf("*");
i++;
}
}
return 0;
}

c. Muestra de salida obtenida:

d. Compilador Utilizado: Neat beans IDE 8.0.2

3. Escribir un programa para resolver la ecuacin cuadrtica que tiene la


forma a (x^2) + b x+ c =0.
En esta ecuacin x es la variable desconocida y a, b y c son constantes
conocidas.

a. Diagrama de flujo:

b. Cdigo Fuente :
//programa que resuelve una ecuacion cuadratica//
#include<stdio.h>
#include<math.h>// por el comando pow //
int main(){
float a,b,c,disc,x1,x2; //las variables toman todoso los valores
reales//
printf("Ingrese el valor de a = ");
scanf("%f",&a);
while(a==0){
printf("El valor de a no puede ser 0 ingrese el valor de a de
nuevo:");
scanf("%f",&a);
}
printf("Ingrese el valor de b = ");
scanf("%f",&b);
printf("Ingrese el valor de c = ");
scanf("%f",&c);
disc = pow(b,2) - 4 * a * c;
if(disc>0){
x1=( -b + sqrt( disc ) ) / ( 2 * a );
x2=( -b - sqrt( disc ) )/ ( 2 * a );
printf(" las soluciones son %f y %f",x1,x2);

}
else{
if(disc==0){
x1= - b / ( 2 * a);
printf("La ecuacion tiene solucion unica y es : %f",x1);
}
else{
x1= ( -b / ( 2 * a ));
x2= (sqrt( -disc ) / (2 * a));
printf("Las soluciones imaginarias son %f + %f i \n",x1,x2);
printf("Las soluciones imaginarias son %f - %f i",x1,x2);
}
}
return 0;
}

4. Dos mviles P y Q se dirigen uno al encuentro del otro desde los puntos
A y B que distan 2000 km. Las distancias recorridas estn dadas por las
frmulas: P(t) = 100t, Q(t) = t3/2 t; en donde t est dado en horas.
Escriba un programa en C/C++ que calcule e imprima el tiempo en horas
y minutos en el que ambos se cruzan. Imprima tambin la posicin del
encuentro con respecto al punto A.
a. Seudocdigo:
(1) Hallar el tiempo en que se encuentran osea el tiempo en el que los dos
mviles sumando sus recorridos la suma sea 2000.
(2) Luego con un while restringir la ecuacin siendo esta >a 0.001
(3) Transformar el tiempo a horas y minutos multiplicando *60
(4) Luego multiplicar el tiempo*100 para la distancia de B respecto de A
b. Diagrama de Flujo:

INICIO

Int a;
double b,c,t=0;
A
(200(pow(t,1.5)+99*t)>
0.0001?

NOSI

SI
a=t;
b=(t-a)*60;
c=(t*100);

c. Cdigo

Imprimir a y b y c

Fuente:

//Programa para
calcular
el tiempo de
FIN
encuentro de dos
moviles
segun la ecuacion de su trayectoria//
#include<stdio.h>
#include<math.h>
int main(){
int a ;
double b,c,t=0;
do{
t=t+0.0001;
}
while(2000-(pow(t,1.5)+99*t)>0.0001);
a=t;
b=(t-a)*60;
c=(t*100);
printf("El tiempo en horas y minutos es : %i horas con %.2lf minutos \n",a,b);
printf("La posicion respecto de A es igual a: %.2lf\n",c);
system("PAUSE");
}
d. Muestra de salida obtenida:

e. Compilador Utilizado: Neat beans IDE 8.0.2

5. La raz digital de un nmero entero positivo se halla sumando los dgitos


del nmero. Si el valor resultante es de un solo digito entonces ese digito
es la raz digital. Si el valor resultante contiene 2 o ms dgitos, esos
dgitos son sumados y el proceso se repite. Esto se contina hasta que
quede un solo digito. Por ejemplo , considere al 24 dado que 2+4 es 6 y
este es de un solo digito la raz digital de 24 es 6.
a. Diagrama de Flujo:

b. Cdigo Fuente:
//Problema 5 calculo de la raiz digital de cualquier numero//
#include<stdio.h>
int main(){
int a,b,n;
int c=0;
printf("Ingrese el numero del cual se desee hallar la raiz
digital \n");
scanf("%d",&a);

printf("El numero ingresado es = %d\n",a);


while(a>0){
b=a%10;
a=a/10;
c=c+b;
if(a==0){
if(c>=10){
n=a;
a=c;
c=n;
}
else{
printf("La raiz es: %d",c);
}
}
}
return 0;
}

c. Muestra de salida obtenida:


d. Compilador Utilizado: Neat beans IDE 8.0.2
Alumno: Jan Llallico Rojas
Cod: 20151390G

También podría gustarte