14
CB-411 O: Tarea 1 Alumno: Boris Hermes Seminario Arista Código: 20141076H Profesor: Arturo Vilca Román

Tarea info

Embed Size (px)

Citation preview

Page 1: Tarea info

CB-411 O: Tarea 1

Alumno: Boris Hermes Seminario Arista

Código: 20141076H

Profesor: Arturo Vilca Román

Page 2: Tarea info

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

Page 3: Tarea info

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

Page 4: Tarea info

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

Page 5: Tarea info

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

Page 6: Tarea info

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

Page 7: Tarea info

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

Page 8: Tarea info

CB-411 O: Tarea 1

Page 9: Tarea info

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

Page 10: Tarea info

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

Page 11: Tarea info

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.

Page 12: Tarea info

CB-411 O: Tarea 1

5.1. Diagrama de flujo

Page 13: Tarea info

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 }

Page 14: Tarea info

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