Tarea info
-
Upload
boris-seminario -
Category
Software
-
view
11 -
download
0
Transcript of Tarea info
CB-411 O: Tarea 1
Alumno: Boris Hermes Seminario Arista
Código: 20141076H
Profesor: Arturo Vilca Román
CB-411 O: Tarea 1
T2. Histograma
Una aplicación interesante de las computadoras es dibujar gráficos
convencionales y de barra (algunas veces denominados “histogramas”). Escriba
un programa que lea cinco números, cada uno entre 1 y 30. Por cada número
leído, su programa debe imprimir el número y dibujar ese número usando
asteriscos adyacentes.
Por ejemplo, si su programa lee número 7 debe mostrar: *******
2.a. Pseudocódigo
Proceso Histograma
1 Mientras n1>30||n1<1 Hacer
2 Leer n1
3 FinMientras
4 5 Mientras n2>30||n2<1 Hacer
6 Leer n2
7 FinMientras
8
9 Mientras n3>30||n3<1 Hacer
10 Leer n3
11 FinMientras
12 13 Mientras n4>30||n4<1 Hacer
14 Leer n4
15 FinMientras
16 17 Mientras n5>30||n5<1 Hacer
18 Leer n5
19 FinMientras
20 21 //Imprime el histograma
22 Mientras cont<n1 Hacer
23 cont=cont+1
24 Escribir "*"
25 FinMientras
26 cont=0
27 28 Mientras cont<n2 Hacer
29 cont=cont+1
30 Escribir "*"
31 FinMientras
CB-411 O: Tarea 1
32 cont=0
33 34 Mientras cont<n3 Hacer
35 cont=cont+1
36 Escribir "*"
37 FinMientras
38 cont=0
39 40 Mientras cont<n4 Hacer
41 cont=cont+1
42 Escribir "*"
43 FinMientras
44 cont=0
45 46 Mientras cont<n5 Hacer
47 cont=cont+1
48 Escribir "*"
49 FinMientras
50 FinProceso
CB-411 O: Tarea 1
2.b. Código fuente en C
#include<stdio.h> #include<math.h> int main() { int n1,n2,n3,n4,n5; int cont,i; cont =0; i=0; //Se inicializan las variables con un valor no contemplado en los valores pedidos n1=0; n2=0; n3=0; n4=0; n5=0; printf("Por favor ingrese los numeros que se piden a continuacion\n"); while(n1>30||n1<1){ i=i+1; if(i>1) printf("Error: intentelo de nuevo\n"); printf("numero 1:\t"); scanf("%d",&n1); n1=n1; } i=0; while(n2>30||n2<1){ i=i+1; if(i>1) printf("Error: intentelo de nuevo\n"); printf("numero 2:\t"); scanf("%d",&n2); n2=n2; } i=0; while(n3>30||n3<1){ i=i+1; if(i>1) printf("Error: intentelo de nuevo\n"); printf("numero 3:\t"); scanf("%d",&n3); n3=n3; } i=0; while(n4>30||n4<1){ i=i+1; if(i>1) printf("Error: intentelo de nuevo\n"); printf("numero 4:\t"); scanf("%d",&n4); n4=n4; }
CB-411 O: Tarea 1
i=0; while(n5>30||n5<1){ i=i+1; if(i>1) printf("Error: intentelo de nuevo\n"); printf("numero 5:\t"); scanf("%d",&n5); n5=n5; } //Se imprime el histograma printf("\n-------------------------------\n"); printf("\n\n%d",n1); while(cont<n1) { cont=cont+1; printf("*"); } cont=0; printf("\n\n%d",n2); while(cont<n2) { cont=cont+1; printf("*"); } cont=0; printf("\n\n%d",n3); while(cont<n3) { cont=cont+1; printf("*"); } cont=0; printf("\n\n%d",n4); while(cont<n4) { cont=cont+1; printf("*"); } cont=0; printf("\n\n%d",n5); while(cont<n5) { cont=cont+1; printf("*"); } cont=0; return 0; }
CB-411 O: Tarea 1
3.c.Muestras de las salidas obtenidas
Por favor ingrese los numeros que se piden a continuacion
numero 1: 10
numero 2: 0
Error: intentelo de nuevo
numero 2: 5
numero 3: -5
Error: intentelo de nuevo
numero 3: 5
numero 4: 30
numero 5: 21
-------------------------------
10**********
5*****
5*****
30******************************
21*********************
CB-411 O: Tarea 1
T3. Ecuación cuadrática Escribir un programa para resolver la ecuación cuadrática que tiene la
forma 𝑎𝑥2 + 𝑏𝑥 + 𝑐
En esta ecuación x es la variable desconocida y a, b y c son constantes conocidas.
3.aDiagrama de flujo:
Se sabe que una ecuación cuadrática tiene 2 soluciones según la fórmula:
𝑥 =−𝑏 ± √𝑏2 − 4𝑎𝑐
2𝑎
En esta ecuación se puede notar que la expresión contenida en el radical puede
ser positiva o negativa, por lo que la ecuación podría tener valores no reales
(imaginarios), esto debe considerarse en el algoritmo.
También se consideran los valores para los que la ecuación es no
cuadrática
CB-411 O: Tarea 1
CB-411 O: Tarea 1
3.b. Código fuente en C
1 #include<stdio.h>
2 #include<math.h>
3 int main()
4 {
5 float a,b,c;
6 float delta, rdelta;
7 printf("Por favor ingrese los numeros:\na ");
8 scanf("%f",&a);
9 printf("\nb: ");
10 scanf("%f",&b);
11 printf("\nc: ");
12 scanf("%f",&c);
13
14 //¿Es la ecuación cuadrática?
15 if(a==0)//Caso no cuadrática
16 {
17 if(b==0)
18 {
19 printf("La ecuacion no tiene solucion alguna, es inconsistente");
20 }
21 else
22 {
23 printf("La ecuacion es no cuadratica y su solucion es:%f",-c/b);
24 }
25 }
26 else//La ecuacion es cuadratica
27 {
28 a=a/a;
29 b=b/a;
30 c=c/a;
31 delta=b*b-4*a*c;
32 rdelta=sqrt(abs(delta))/(2*a);
33 if(delta>=0)
34 {
35 if(delta==0)
36 {
37 printf("La ecuacion cuadratica tiene una sola raiz%f",-b/(2*a));
38 }
39 else
40 {
41 printf("Las raices son reales\n");
42 printf("x1 = %f + %f",-b/(2*a),rdelta);
43 printf("=%f\n",-b/(2*a)+rdelta);
44 printf("x2 = %f - %f",-b/(2*a),rdelta)-b/(2*a)+rdelta;
45 printf("=%f",-b/(2*a)-rdelta);
CB-411 O: Tarea 1
46 }
47 }
48 else//solucion compleja
49 {
50 printf("Las raices son complejas\n");
51 printf("x1 = %f + %f = %fi\n",-b/(2*a),rdelta,-b/(2*a)+rdelta);
52 printf("x2 = %f - %f = %fi",-b/(2*a),rdelta,-b/(2*a)-rdelta);
53 }
54 }
55 return 0;
56 }
3.d. Muestra de las salidas obtenidas
Por favor ingrese los numeros:
a: 1
b: 1
c: 1
Las raices son complejas
x1 = -0.500000 + 0.866025 = 0.366025i
x2 = -0.500000 - 0.866025 = -1.366025i
Por favor ingrese los numeros:
a: 0
b: 0
c: 1
La ecuacion no tiene solucion alguna, es
inconsistente
Por favor ingrese los numeros:
a: 0
b: 1
c: 2
La ecuacion es no cuadratica y su solucion
es:-2.000000
Por favor ingrese los numeros:
a: 1
b: 4
c: 4
La ecuacion cuadratica tiene una sola raiz-
2.000000
Por favor ingrese los numeros:
a: 1
b: -5
c: 6
Las raices son reales
x1 = 2.500000 + 0.500000=3.000000
x2 = 2.500000 - 0.500000=2.000000
CB-411 O: Tarea 1
T5. Raíz digital La raíz digital de un número entero positivo se halla sumando los dígitos
del número. Si el valor resultante es un solo digito entonces ese digito es la raíz
digital. Si el valor resultante contiene dos o más dígitos, esos dígitos son sumados
y el proceso se repite. Esto se continúa tanto como sea necesario hasta obtener
un solo digito. Por ejemplo, considere el entero positivo 24. sumando el 2 y el 4
se obtiene el valor de 6. Desde que 6 es un solo digito, 6 es la raíz digital de 24.
Ahora, considere el entero positivo 39. Sumando 3 y 9 da 12. Desde que 12 no
es un solo digito, el proceso debe repetirse. Sumando el 1 y el 2 da 3, un solo
digito y también la raíz digital de 39.
Escriba un programa para hallar la raíz digital de un número entero positivo.
CB-411 O: Tarea 1
5.1. Diagrama de flujo
CB-411 O: Tarea 1
5.b. Código fuente en C
1 #include<stdio.h>
2 int main()
3 { printf("Por favor ingrese el numero:\t");
4 int N;
5 int r, S, s;
6 int var, i;
7 var =0;
8 scanf("%d",&N);
9 S=0;
10 i=1;
11 while(var==0)
12 {
13 //Suma cifras
14 while(N/2>5)//N/2>5
15 {
16 r=N%10;
17 N=(N-r)/10;
18 S=S+r;
19 }
20 S=S+N;
21 //var=1;//test de suma de cifras correcto
22 //Cuenta cifras de la suma de cifras
23 s=S;
24 while(s>=10)
25 {
26 s=(s-s%10)/10;
27 i=i+1;
28 }
29 N=S;//N recoge el valor de la suma de cifras para volver al bucle
30 if(i==1)
31 {
32 var=1;
33 }
34 Else
35 var=0;
36 }
37 printf("\nLa raíz digital del numero es %d",N);
38
39 return 0;
40 }
CB-411 O: Tarea 1
5.d. Muestras de las salidas obtenidas
Por favor ingrese el numero: 15
La raíz digital del numero es: 6
Por favor ingrese el numero: 123
La raíz digital del numero es: 6