practica8

37
  UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO “F CULT D DE INGENIERÍ  PRACTICA 8: “DISEÑO DE PROGR M S P RTE II”  EQUIPO 1 INTEGRANTES: LÓPEZ TORRES MARÍA ESTHER MORALES CALDERÓN ETHIEL CALDERÓN RIVERO ESPÍNDOLA MAURO ALBERTO VILLEGAS MERLOS JESSICA PROFESOR: RODRÍGUEZ GÓMEZ JUAN ÁNGEL

Upload: jessica-villegas

Post on 10-Jul-2015

645 views

Category:

Documents


0 download

TRANSCRIPT

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 1/37

 

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

“FACULTAD DE INGENIERÍA” 

PRACTICA 8: “DISEÑO DE PROGRAMAS PARTE II” 

EQUIPO 10

INTEGRANTES:

LÓPEZ TORRES MARÍA ESTHER

MORALES CALDERÓN ETHIEL CALDERÓN

RIVERO ESPÍNDOLA MAURO ALBERTOVILLEGAS MERLOS JESSICA

PROFESOR: RODRÍGUEZ GÓMEZ JUAN ÁNGEL

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 2/37

 

RESUMEN:

En esta práctica se continuará con el desarrollo de algoritmos y diagramas de flujo, los cuales mediante de un seguimiento de pasos

resolverán una serie de problemas de la ingeniería, solo que estos tendrán una dificultad un poco mayor, debido a que se esperaresolver operaciones más complejas y para ello vamos a hacer uso de otro tipo de estructuras como son las estructuras de repetición

las cuales podrían dar la impresión de ser más complicadas pero al analizar el resultado vemos que hacen que nuestro trabajo sea

menor.

Al igual que la practica anterior nos apoyaremos mediante una aplicación llamada DFD, para realizar dichos diagramas de flujo y

comprobar si su función es la correcta. De los ejercicios propuestos en la práctica, esta vez desarrollaremos los números impares.

DESARROLLO:

1.-Calcular la enésima potencia de un número, utilizando la operación producto

a) Análisis del problema

-Se necesitan dos valores de entrada, el número base (n) y el exponente (k)

-Para lograr sólo potencias, se lleva a cabo dos filtros, primero, k debe ser mayor que cero; y segundo, k no debe ser fraccionario;

ambos se logran utilizando una estructura de repetición while pidiendo de nuevo el valor de k hasta que cumpla con ser positivo y no

fraccionario

-Posteriormente se introduce en otra estructura de repetición, en este caso un For para llevar a cabo el producto de n*n hasta que k=0

que es el número de veces que se debe multiplicar n

b) Construcción del algoritmo:

1.  Inicio

2.  Leer n, k 

3.  Mientras k<0 ir al paso 4, sino ir al paso 7

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 3/37

 

4.  „Introduce una potencia positiva‟ 

5.  Leer k 

6.  Ir al paso 3

7.  p=18.  x=k MOD 1

9.  Mientras x>0 ir al paso 10, de lo contrario ir al paso 13

10. „Introduce una potencia no fraccionaria‟ 

11. Leer k 

12. Ir al paso 9

13. Mientras k>0 ir al paso 14, de lo contrario ir al paso 17

14. p= p*n

15. k=k-1

16. Ir al paso 13

17. Imprimir p

18. Fin

c) Prueba de Escritorio: Sea n=3 y k=2

1. Inicio

2. n=3, k=2

3. k<0 Si, Entonces ir al paso 6

7. p=1, x=08. x>0 No, Entonces ir al paso 12

12. k>0 Si, Entonces ir al paso 13

13. p=1*3=3 , k=2-1=1

14. Regresar al paso 12

12. k>0 Si, Entonces ir al paso 13

13. p=3*3=9 , k=1-1=0. Ir al paso 12

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 4/37

 

12. k>0 No, Entonces ir al paso 15

15. Imprimir p=9

16. Fin

a)  Análisis del algoritmo:

Como datos de entrada se necesita el valor de los dos números

naturales (x) y (y).

En las restricciones se observa que los números pueden ser sólo

naturales. X, Y > 0

Finalmente se obtiene el residuo de la división al aplicar la

fórmula:

res = X MOD Yb)  Construcción del algoritmo:

1. Inicio

2. Leer número (x) y (y)

3. x, y > 0

4. res = X MOD Y

5. res = residuo de la división

6. Fin

c)  Prueba de escritorio

Dado los valores X=10 y Y= 2

1.  Inicio

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 5/37

 

2.  res = 10/2

3.  res = 5

4. 

Fin

5.- Calcular la suma de los dígitos de un numero natural. Por ejemplo: 1234= 10

1 2

2

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 6/37

 

b) Construcción del algoritmo

1.  Inicio

2. 

„Introduce el numero de dígitos‟ 3.  Leer n

4.  vector(n)=0

5.  x=0

6.  y=0

7.  Para x=1 hasta x=m, con incremento de +1 ir al paso 8, de lo contrario ir al

paso 15

8.  „Ingresa la posición x‟ 

9.  Leer vector(x)

10. Mientras vector(x) >10 ir al paso 11, de lo contrario ir al paso 1411. „Introduzca un valor menor a 10‟ 

12. Leer vector(x)

13. Ir al paso 10

14. Ir al paso 7

15. Para x=1 hasta x=m, con incremento de +1 ir al paso 16, de lo contrario ir al

paso 16

16. y=y + vector(x)

17. Ir al paso 15

18. Imprimir y19. Fin

c) Prueba de escritorio

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 7/37

 

Sea n=4; y el numero natural =1234

1.  Inicio

2. 

„Introduce el número de digitos‟ 3.  n=4

4.  vector(n)=0

5.  x=0

6.  y=0

7.  Para x=1 hasta x=4

8.  „Ingresa la posición x‟ 

9.  vector(1)=1

10.  vector(x) >10 No

14. x=1+1=2, Ir al paso 7

7. Para x=2 hasta x=4

8. „Ingresa la posición x‟ 

9. vector(2)=2

10. 2 >10 No

14. x=2+1=3, Ir al paso 7

7. Para x=3 hasta x=4

8. „Ingresa la posición x‟ 

9. vector(3)=3

10. 3>10 No

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 8/37

 

14. x=3+1=4, Ir al paso 7

7. Para x=4 hasta x=4

8. „Ingresa la posición x‟ 

9. vector(4)=4

10. 4 >10 No

14. x=4+1=5, Ir al paso 7

7. Para x=5 hasta x=4 ir al paso 15

15. Para x=1 hasta x=4, con incremento de +1 ir al paso 16, de lo contrario ir al paso 18

16. y=0+1=1

17. x=1+1=2, Ir al paso 15

15. Para x=2 hasta x=4, con incremento de +1 ir al paso 16, de lo contrario ir al paso 18

16. y=1+2=3

17. x=2+1=3, Ir al paso 15

15. Para x=3 hasta x=4, con incremento de +1 ir al paso 16, de lo contrario ir al paso 18

16. y=3+3=6

17. x=3+1=4, Ir al paso 15

15. Para x=4 hasta x=4, con incremento de +1 ir al paso 16, de lo contrario ir al paso 18

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 9/37

 

16. y=6+4=10

17. x=4+1=5, Ir al paso 15

15. Para x=5 hasta x=4, con incremento de +1 ir al paso 16, de lo contrario ir al paso 18

18. Imprimir 10

19. Fin

7.- Cálculo de los salarios mensuales de los empleados de una empresa, sabiendo que éstos se calculan con base en las horas

semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de cuarenta horas semanales, las horas

extraordinarias se pagaran a razón de 1.5 veces la hora ordinaria.

a)  Análisis del algoritmo:Para resolver el algoritmo se usaran variables para determinar las horas trabajadas, y otra para el pago de los empelados,

estos valores no pueden ser negativos, ya que no se mencionan

descuentos ni faltas.

b)  Construcción del algoritmo:

1.  Inicio

2.  Declarar variable: h=horas, para esto se supone que la hora-

trabajo está ya fija

3.  Leer variables s y h

4.  Establecer condición si h 40, si es cierta ir al paso 6, si no ir

al paso 8

5.  Operar la hora de trabajo por las horas trabajadas mas 1.5 por

las hora de trabajo

6.  Operar la hora de trabajo por las horas trabajadas

7.  Imprimir salario

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 10/37

 

8.  Fin

c)  Prueba de escritorio:

1.  Inicio2.  H=43

3.  ¿43 40? Si, ir al paso 6

4.  S= hora-trabajo*40+3*1.5*hora trabajo.

5.  Imprimir S

6.  Fin

9.- Dado un número natural y dos valores, i y j, devolver el número resultante de

intercambiar los dígitos i’ésimo y j’ésimo del número inicial 

a) Análisis del problema:

- Se necesitan tres valores de entrada, n, i y j; ya que al trabajar con un arreglo llamado vector  ,

es necesario dar a n el número de cifras del número natural; para tomar a n como el índice de

vector  

-Para restringir los valores que entran en el arreglo se introduce una condición para que el

número introducido sea menor a 10

-Y al final se hace el intercambio con ayuda de una variable auxiliar (aux) de i con j

b) Construcción del algoritmo1.  Inicio

2.  „Introduce el número de dígitos‟ 

3.  Leer n, i, j

4.  Declarar el arreglo vector(n) e iniciarlo en 0

5.  Iniciar la variable auxiliar x =0

6.  Para x=1 hasta x=n con incremento de +1 ir al paso 7, de lo contrario paso 14

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 11/37

 

7.  „Ingrese la posición x‟ 

8.  Leer vector(x)

9.  Si vector(x)>10 ir al paso 10, de lo contrario ir al paso 13

10. „Introduzca un valor menor a 10‟ 11. Leer vector(x)

12. Ir al paso 9

13. Ir al paso 6

14. aux=vector(i)

15. vector(i)=vector(j)

16. vector(j)=aux

17. Para x=1 hasta x=n con incremento de +1 ir al paso 18, de lo contrario ir al paso 20

18. Imprimir vector(x)

19. Ir al paso 17

20. Fin

c) Prueba de escritorio

Sea n=4, i=1, j=2, y el número natural=1234

1. Inicio

2. „Introduce el número de dígitos‟ 

3. n=4, i=1, j=2

4. vector(n)=0, x=0

5. Para x=1 hasta x=4 hacer

6. vector(1)=1,

7. 1>10 No, Entonces ir al paso 5

5. Para x=2

6. vector(2)=2,

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 12/37

 

7. 2>10 No, Entonces ir al paso 5

5. Para x=3

6. vector(3)=3,

7. 3>10 No, Entonces ir al paso 55. Para x=4

6. vector(4)=4,

7. 4>10 No, Entonces ir al paso 5

5. x=4 , fin del ciclo, ir al paso 8

8. aux= vector(1)=1

9. vector(1)=vector(2), vector(1)=2

10. vector(2)=1

11. Para x=1 hasta x=4 hacer paso 12

12. vector(1)=2, x=x+1=2

13.Ir al paso 11

11. x=2 hacer paso 12

12. vector(2)=1, x=x+1=3

13.Ir al paso 11

11. x=3 hacer paso 12

12. vector(3)=3, x=x+1=4

13.Ir al paso 11

11. x=4 hacer paso 12

12. vector(4)=4, x=x+1=5

13. x=5, fin del ciclo para, ir al paso 14

14. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 13/37

 

a)  Análisis del algoritmo:

Establecemos los números enteros n,p,q,

Damos la condición i=1, mientras (i<n), realizamos las operaciones

i=i*10;} i=i/10; p=n/i; q=n%10; y si p=q el número es capicúa. 

b)  Construcción del algoritmo:

1.  entero n,p,q,i=1; 

2.  escribir "Digite un número "; 

3.  leer (n); 

4.  mientras (i < n){i=i*10;}

i=i/10;

p=n/i;

q=n%10; 

5.  si (p==q) 

6.  escribir "El número es capicúa";

sino

7.  escribir "El número no es capicúa";

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 14/37

 

13.- Calcular el área de un circulo a partir de su radio (usar A= πr2)

Análisis del problema:

-  Tomamos las restricciones, el radio del circulo no

puede ser negativo, pues estamos hablando de una

distancia.

-  MQ (while) mientras la condición no se cumpla, el

sistema se cierra.

Construcción del algoritmo:

1.  Inicio

2.  Leer r

3.  r >0,

4.  si: A = r*r*(3.1416)

5.  imprimir A

6.  no: volver al paso 2

7.  Fin

Prueba de escritorio:

1.  Inicio

2.  R = 5

3.  5 > 0

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 15/37

 

4.  A = 25 (3.1416)

5.  A= 78.539

6.  Fin

15.- Calcular la superficie de un cilindro a partir del radio de la base y la altura. (Hacer uso de la formula S = 2 r h + 2r2 ). 

a)  Análisis del algoritmo: Para realizar este algoritmo es necesario tener la altura y el radio del cilindro y estos deben de ser

mayores a cero, ya que no hay radios ni alturas negativas y si son cero no existiría figura.

b)  Construcción del algoritmo:

1.  Inicio

2.  Leer radio

3.  Si el radio >0 ir al paso 4, si no ir al paso 8

4.  Leer altura

5.  Si la altura >0 ir al paso 6, si no ir al paso 11

6.  Calcular la superficie del cilindro con la formula

S = 2r h + 2r2 .

7.  Imprimir S

8.  Repetir valor de r hasta que sea mayor a cero

9.  Si el radio es mayor a cero Fin de MQ

10. Si no repetir radio

11. Repetir valor de h hasta que sea mayor a cero

12. Si el radio es mayor a cero Fin de MQ

13. Si no repetir altura

14. Fin

c)  Prueba de escritorio: Dados los valores r=2 h=7

1.  Inicio

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 16/37

 

2.  r = 2

3.  ¿r>0? Si, ir al paso 4. h=7

4.  ¿h>0? Sí. Ir al paso 75.  S= 2r(2)(7) + 2(2)

2

6.- S= 113.0973

17.- Dado un valor de velocidad medido en kilómetros/ hora, convertir a metros/segundo. Dado un valor de temperaturamedida en grados Centígrados convertir a grados Fahrenheit.

a) Análisis del problema

-Para realizar la conversión de km/h a m/s sólo hay una variable de entrada para la velocidad (V), y el procedimiento es sencillo, se

multiplica la velocidad por 1000 y se divide entre 3600

-Para el problema de la conversión de grados centígrados a grados Fahrenheit se necesita un valor de entrada en grados Celsius C, y

aplicar la fórmula F=((C*9)/5)+32

b) Construcción del algoritmo

1.  Inicio

2.  Leer V

3.  D=V*1000

4.  M=D/3600

5.  Imprimir M

6.  Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 17/37

 

1.  Inicio

2.  Leer C

3.  F=((C*9)/5)+32

4.  Imprimir F5.  Fin

c) Prueba de escritorio

Sea V=35 Km/h Sea C=37° Centígrados

1. Inicio 1. Inicio

2. V=35 2. C=37

3. D=V*1000=35000 3. F=((37*9)/5)+32 = 98.6

4. Imprimir 9.7222 4. Imprimir 98.6

5. M=9.7222 5. Fin

6. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 18/37

 

a)  Análisis del algoritmo:

Como datos de entrada se necesita el valor de los dos números

naturales (A) y (B).

Finalmente se obtiene el residuo de la división al aplicar la

fórmula:

R = (A+B)*B^2

b)  Construcción del algoritmo:

1. Inicio

2. Leer número (A) y (B)

3. R= (A+B)*B^2

4. R = Resultado de la operación

5. Fin

c)  Prueba de escritorio

Dado los valores A=10 y B= 2

1.  Inicio

2.  R = (A+B)*B^2

3.  R = resultado de la operación

4.  Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 19/37

 

21.- Leer 5 números dados e imprimir la suma del primero y el quinto, la resta del segundo con el cuarto y la multiplicación de

los cinco.

a) Análisis del problema- Necesitamos 5 variables que reprecentaran 5 numeros que serán operados entre ellos, y otras 3 que reprecentaran el resultado de

dichas operaciones.

b) Construcción del algoritmo1)  Inicio

2)  Leer v, w, x, y, z

3)  S = V+Z

4)  Imprimir S

5)  T = W-Y

6)  Imprimir T7)  F=V*W*X*Y*Z*

8)  Imprimir F

9)  Fin

c) Prueba de escritorio

1)  Inicio

2)  Leer 8, 3, 1, 4, 2

3)  S= 8+2

4)  Imprimir 10

5)  T= 3-4

6)  Imprimir -1

7)  P=3*8*4*1*2*

8)  Imprimir 192

9)  Fin

2

2

1

1

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 20/37

 

23.- Leer dos números e imprimir las 4 operaciones fundamentales entre los dos, usando sólo una variable auxiliar. (En todo el

ejercicio se debe de usar solo 3 variables).

a)  Análisis del algoritmo:

En este ejercicio se van a usar solamente tres variables, donde dos van a ser de los valores y la otra es de

los resultados, la única condición es que los valores introducidos sean reales

b)  Construcción del algoritmo:

1.  Inicio

2.  Leer a

3.  Leer b

4.  Realizar X= a+b

5. 

Imprimir X6.  Realizar X= a-b

7.  Imprimir X

8.  Realizar X= a*b

9.  Imprimir X

10. Realizar X= a/b

11. Imprimir X

12. Fin

c)  Prueba de escritorio:1.  Inicio

2.  Leer 3

3.  Leer 2

4.  Realizar X= 3+2

5.  Imprimir 5

6.  Realizar X= 3-2

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 21/37

 

7.  Imprimir 1

8.  Realizar X= 3*2

9.  Imprimir 6

10. Realizar X= 3/211. Imprimir 1.5

12. Fin

25) Leer un número y determinar si este es múltiplo de 3.

a)  Análisis del algoritmo:

Como datos de entrada se necesita el (n).

La restricción es n>0

Tenemos que para todo número n dividido entre 3 el residuo

es igual a 0 es múltiplo de 3, pero si el residuo es

diferente a 0 no lo es.

b) Construcción del algoritmo:

1. Inicio

2. Leer número (n), n>0

3. res = n MOD 3

4. ¿res = 0? NO, finalizar programa

5. ¿res= 0? SI ir al paso 6

6. n es múltiplo de tres

5. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 22/37

 

c) Prueba de escritorio:

Dado los valores n= 9

1.  Inicio

2.  0 = 9/3

3.  9 es múltiplo de 3

4.  Fin

a)  Análisis del algoritmo:Como datos de entrada se necesita el valor del número n.

Se pone una condición a n, si es mayor a 0 es positivo si no lo es

negativo.

b)  Construcción del algoritmo:

1. Inicio

2. Leer número (n)

3. n>0 SI = Es positivo4 n>0 NO = Es negativo

5. Fin

c)  Prueba de escritorio

Dado los valores n= 7

1.  Inicio

2.  n = 7

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 23/37

 

3.  7>0 SI = 7 Es positivo

4.  Fin

29.- Devolver el dígito menos significativo de un número natural

Análisis del problema:

-  Necesitamos encontrar el valor que se ubica en la posición de las unidades

dentro de un numero natural, para esto utilizamos: MOD el cual nos va a

dar el residuo de una división entre 10, sabiendo que el numero decimal se

recorre una poción hacia la izquierda.

Construcción del algoritmo:

1.  Inicio

2.  Leer R

3.  S = R MOD 10

4.  Imprimir S

5.  Fin

Prueba de escritorio:

1.  Inicio

2.  R = 173562

3.  S = 173562 MOD 10

4.  S = 2

5.  Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 24/37

 

33.- Calcular el número de dígitos de un número natural. Calcular el dígito i’ésimo de un número natural 

a) Análisis del problema

-Se necesitan dos valores de entrada, el número natural a estudiar (n), y el

dígito i‟ésimo que se busca (i); se divide el número entre 10 hasta que el

resultado de esta división sea >= 1 se detienen las divisiones, y el número de

divisiones realizadas son el número de dígitos del número introducido

-Para calcular el dígito iésimo, simplemente al número de dígitos se le resta

i; y el resultado es el número de veces que se debe de obtener el módulo de

n entre 10, ya que el módulo representaría el valor del dígito i‟ésimo.  

b) Construcción del algoritmo1.  Inicio

2.  Leer n; leer i

3.  Iniciar un contador (c=0); y una variable auxiliar(h=n)

4.  Mientras h>=1 Ir al paso 5, de lo contrario ir al paso 7

5.  h=h/10

6.  c=c+1

7.  Imprimir c

8.  i=c-i

9.  Mientras i>0 hacer paso 10, de lo contrario ir al paso 1210. n=n/10-((n MOD 10)/10)

11. i=i-1

12. 12 k=n MOD 10

13. Imprimir k 

14. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 25/37

 

c) Prueba de escritorio

Sea n=1234, i=2

1. Inicio

2. n= 1234, i=23. c=0, h=1234

4. 1234>=1 si

5. h=1234/10=123.4

6. c=0+1=1, regresar al paso 4

4. 123.4>=1 si

5. h=123.4/10=12.34

6. c=1+1=2, regresar al paso 4

4. 12.34>=1 si

5. h=12.34/10=1.2346. c=2+1=3, regresar al paso 4

4. 1.234>=1 si

5. h=1.234/10=.1234

6. c=3+1=4, regresar al paso 4

4. .1234>=1 No

7. numero de dígitos 4

8. i=4-2=2

9. 2>0 si

10. n=(1234/10)-((1234 MOD 10)/10)=123

11. i=2-1=1, regresar al paso 9

9. 1>0 si

10. n=(123/10)-((123 MOD 10)/10)=12

11. i=1-1=0, regresar al paso 9

9. 0>0 no

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 26/37

 

12. k=12 MOD 10=2

13. el digito iésimo es 2

14. Fin

a)  Análisis del algoritmo:

Como datos de entrada se necesita el valor de los números n

Se establece un ciclo para el residuo de los números de 0 a 4.

Se realiza la operación n MOD 2= res, y si es residuo es igual a 0

es un número par, por el contrario n es impar.

b)  Análisis del algoritmo

1.  Inicio

2.  Leer n

3.  Establecer ciclo para n de 0 a 4 en intervalos de 1

4.  res= MOD 2

5.  res= 0 Si entonces n es par

6.  res= 0 No entonces n es impar

7. 

Finc)  Prueba de escritorio

Dado los valores n= 7,5.8.10, 2

1.  Inicio

2.  n = 7,5.8.10, 2

3.  res = (7,5.8.10, 2) MOD 2

4.  res=0

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 27/37

 

5.  8,10,2 es par

6.  Fi

37.- Leer un número y verificar si se encuentra

entre 10 y 20.

Análisis del problema:

-  El numero a introducir debe ser 10<= K <= 20.

De lo contrario se cerrara.

Construcción del algoritmo:

1.  Inicio

2.  Leer K3.  K >= 10

4.  No(K >= 10): regresar al paso 2

5.  Si: K >=20

6.  Si: Regresar al paso 2

7.  No (K >=20): imprimir K

8.  Fin

Prueba de escritorio:

1. 

Inicio2.  K = 5

3.  5 < 10; regresar al paso 2

4.  (paso 2) K= 35

5.  35 > 20; regresar al paso 2

6.  (paso 2) K = 12

7.  12 > 10

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 28/37

 

8.  12< 20

9.  K= 12

10. Fin

39.- Leer dos números e imprimir el menor.

a)  Análisis del algoritmo:

En este problema se necesitan los valores de los dos números que se

van a comparar,

que se encuentren en el campo de los reales

b)  Construcción del algoritmo:

1.  Inicio

2.  Leer a

3.  Leer b

4.  Si a>b ir al paso 5, si no ir al paso 7

5.  Imprimir “a es el menor” 

6.  Imprimir “ b es el menor” 

7.  Fin

c)  Prueba de escritorio:

1.  Inicio

2.  Leer 5

3.  Leer 8

4.  ¿5>8? Sí, ir al paso 5

5.  “5 es el menor” 

6.  Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 29/37

 

41. Calcular las soluciones de un polinomio de tercer grado

a) Análisis del problema

-Para resolver un polinomio de tercer grado, se requieren 4 variables, a, b, c y d; y un método para llevarlo a cabo es el método deCardano, es cual consiste en lo siguiente:

-Igualar b= b/a, c=c/a y d=d/a; luego p=c-(b*b)/c y q=2(b*b*b)/27-b*c/3+d.

-Calcular la discriminante D=q*q+(4(p*p*p)/27); si D es positivo, se obtienen las raíces primero obteniendo u y v de las siguientes

fórmulas

u=((-q+D^(1/2))/2)^(1/3); v=((-q-D^(1/2))/2)^(1/3). Y las raíces de a cuerdo a las siguientes fórmulas; la raíz real z0=u+v, y las

complejas:

z1=u*j+v*j2 ; z1=u*j2+v*j1; siendo j=-1/2+.866i y j2=-1/2-.866i.

-En caso de que sea D=0, se obtienen las raíces con las fórmulas: zo= 3*q/p y z1=z2= (-3*q)/(2*p)

-En el último caso, que D sea negativo, las tres raíces son reales, y se obtienen de la fórmula: z= (2*(-p/3)^(1/2))*((1/3)*arc cos((-q/2)*(27/-(p*p*p))^(1/2)+(2*k*3.14)/3); para k=[0,1,2]

b) Construir el algoritmo

1.  Inicio

2.  Leer a, b, c, d

3.  b= b/a

4.  c=c/a

5.  d=d/a

6.  p=c-(b*b)/c

7.  q=2(b*b*b)/27-b*c/3+d.

8.  D=q*q+(4(p*p*p)/27)

9.  Si D>=0 Ir al paso 10, de lo contrario ir al paso 23

10. Si D>0 Ir al paso 11, de lo contrario ir al paso 19

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 30/37

 

11. u=((-q+D^(1/2))/2)^(1/3)

12. v=((-q-D^(1/2))/2)^(1/3)

13. z0=u+v

14. z1= u*(-1/2)+(-1/2)*v

15. z2= u(.866)-(.866)v

16. z3= v(.866)-(.866)u

17. Imprimir z0, ' , z1,'+',z2,'i ',z1,'+',z3,'i'

18. Fin

19. z0= 3*q/p

20. z1=(-3*q)/(2*p)

21. Imprimir z0, z1, z1

22. Fin

23. z0=(2*(-p/3)^(1/2))*((1/3)*arc cos((-q/2)*(27/-(p*p*p))^(1/2)+(2*0*3.14)/324. z1=(2*(-p/3)^(1/2))*((1/3)*arc cos((-q/2)*(27/-(p*p*p))^(1/2)+(2*1*3.14)/3

25. z2=(2*(-p/3)^(1/2))*((1/3)*arc cos((-q/2)*(27/-(p*p*p))^(1/2)+(2*2*3.14)/3

26. Imprimir z0,z1,'z2

27. Fin

28. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 31/37

 

c)

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 32/37

 

c) Prueba de escritorio

Sea el polinomio x^3-5x-12

1.  Inicio

2. 

a=1, b=0, c=-5, d=-123.  b= 0

4.  c=-5

5.  d=-12

6.  p=-5-(0*0)/-5=1

7.  q=2(0*0*0)/27-0*(-5)/3-12= -12

8.  D=(-12)*(-12)+(4(1)/27)=144.1481481

9.  D>=0

10. Si D>0

11. u=((12+144.1481481^(1/2))/2)^(1/3)=2.28962412. v=((12-144.1481481^(1/2))/2)^(1/3)=-.145584

13. z0=2.4

14. z1= 2.28*(-1/2)+(-1/2)*(-.14)=-1.07

15. z2= 2.28(.866)-(.866)(-.14)=2.09

16. z3= (-.14)(.866)-(.866)*2.28=-2.09

17. Imprimir 2, -1.07+2.09i, -1.07-2.09i

18. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 33/37

 

a)  Análisis del algoritmo:

Como datos de entrada se necesita el valor del número n y m

Se pone una condición de n<m, si esto es verdad se restará el valor

de

n-m, por lo contrario si m>n se restará el valor de m- n.

b)  Construcción del algoritmo:

1. Inicio

2. Leer números (n) y (m)

3. n<m SI entonces n-m= k 

4 n<m NO entonces m-n = k 

5. Fin

c)  Prueba de escritorio

Dado los valores n= 7 y m = 6

7.  Inicio

8.  n <m NO entonces m-n = -1

9.  k = -1

10. Fin

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 34/37

 

45.- Determinar si un carácter es una vocal o no

Análisis del problema:

-  Tenemos 5 vocales. Delimitaremos ese rango.

Construcción del algoritmo:1.  Inicio

2.  Leer Q

3.  Q = a

4.  Si: vocal

5.  No: Q=e

6.  Si; imprimir: Q es vocal

7. 

No: ¿Q= i?8.  Si; imprimir: Q es vocal

9.  No: ¿Q = o?

10. Si; imprimir Q es vocal

11. No: ¿Q = u?

12. Si: imprimir Q es vocal

13. No: imprimir Q no es vocal

14. Fin

Prueba de escritorio:

1.  Inicio

2.  Q = w

3.  Q = a

4.  (paso 5) Q =e

5.  (paso 6) Q es vocal

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 35/37

 

6.  Fin

47.- Leer 10 números e imprimir solo los positivos.

a)  Análisis del algoritmo:

Como datos de entrada se necesita el valor de los números n

Se establece un ciclo para el residuo de los números de 0 a 9.

Se realiza la operación m es n >=0, si la respuesta es afirmativa

significa que el valor es positivo.

b)  Construcción del algoritmo:

1.  Inicio.

2.  Definir variables n, num : 0

num=0.

3.  Establecer ciclo para n=1, n<=10 n= n+1

4.  Imprimir („Ingrese el número:‟). 

5.  Leer num.

6.  Continuar con el ciclo hasta tener 10 números

7.  Fin para.

8.  Evaluar los números para M= n 0,

9.  Imprimir M

10. Fin.

c)  Prueba de escritorio:

1.  Inicio

2.  n = -1, -5, 8, 9, 2, -4, 4, 8, 1, -6

3.  ¿M= -10? No

4.  ¿M= -50? No

5.  ¿M= 80? Si

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 36/37

 

6.  ¿M= 90? Si

7.  ¿M= 20? Si

8.  ¿M= -40? No

9.  ¿M= 40? Si

10. ¿M= 80? Si

11. ¿M= 10? Si

12. ¿M= -60? NO

13. M= 8,9,2,4,8,1.

14. Fin

CONCLUSIONES:

En la práctica encontramos muchas dificultades con respecto al uso de estructuras diferentes a las que estábamos acostumbrados ausar, debido a la falta de conocimiento acerca de las mismas, ya que la explicación en clase teorica no ha sido la ideal que digamos y

apoyarnos en Internet ha sido complicado debido a las bases que debemos tener para conocer ciertos conceptos.

Aunque por otra parte algunas fueron fáciles debido a su estructura lineal, y que solo contaban con la parte de decisión.

El uso apropiado de estos conceptos como lo son diagramas de flujo y algoritmos es básico para poder aprender a programar en

diversos lenguaje, ya que estos son la estructura lógica de toda computadora y una forma eficiente de comunicación entre maquina y

usuario.

Para que la solución de un problema se lleve a cabo de la manera correcta debemos de checar cada detalle en nuestro algoritmo, ya que

alguna palabra mal escrita o una variable no planteada provocar la falla del diagrama.

Otro problema que encontramos fue el uso de el programa DFD, ya que esta de una forma muy abreviada y esto impide que entiendas

bien cómo funciona el flujo en cada diagrama, ya que te simplifica el método, aunque la ventaja es para usarlo como prueba de

escritorio donde te dice en que fallaste o que planteaste mal

5/10/2018 Practica8 - slidepdf.com

http://slidepdf.com/reader/full/practica8-55a0c11dc580b 37/37

 

GLOSARIO:

Algoritmo: . El algoritmo constituye un método para resolver un problema mediante una secuencia de pasos a seguir. Dicha secuenciapuede ser expresada en forma de diagrama de flujo con el fin de seguirlo de una forma más sencilla.

Bucle: es un tipo de estructura de control que permite repetir una o más sentencias múltiples veces. 

Estructura de repetición: La instrucción WHILE se usa para implementar una estructura de repetición (bucle while) en la que la

repetición se controla mediante una expresión booleana y continúa ejecutándose mientras esta expresión permanece cierta, finalizando

cuando se hace falsa.