Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Ejemplos de secuencias de control.
● Resolver la ecuación cuadrática:
para valores dados de a, b y c.
ax2bxc=0
Ecuación cuadrática (cont.)● Solución al problema:
– Hay 3 posibilidades para el discriminante:
● Si es positivo, hay 2 raíces reales.● Si es cero, hay solo una raíz real.● Si es negativo hay 2 raíces complejas.
x=−b±b2−4ac2a
Ecuación cuadrática (cont.)● Diseño del algoritmo (pseudocódigo)(solo parte del condicional).
Si (discriminante>0) entoncesevalúa las dos raíces reales.
else if (discriminante=0)entoncesevalúa una raíz igual a: -b/2a
else evalúa las dos raíces complejas
Ecuación cuadrática (cont.)● Programa.
– Ver:http://www.ifug.ugto.mx/~gonzart/notas/cuad.c
Ecuación cuadrática (cont.)● Verificación del programa:
– Pensar en ejemplos:
●
●
●
x−3∗ x2=x2−x−6
x8∗x8=x216x64
x22x3=0
Cajero automático:● Definición del problema:Se desea calcular el numero de billetes y monedas necesarias para entregar un monto en particular. Hay que utilizar el menor número de billetes y monedas posibles. Indicar la cantidad faltante si es el caso.– Los valores posibles de los billetes son:
500,200,100,50,20.– Los valores de las monedas son:
10,5,2,1,0.5,0.2,0.1.
Cajero automático:(cont.)● Solución del problema:
– Dado que se desea el menor número de billetes y monedas primero hay que calcular el numero de billetes de la mayor denominación y el residuo completarlo con la siguiente denominación y así sucesivamente hasta acabar con los posibles billetes y monedas. Imprimir el faltante.
Cajero automático:(cont.)● Algoritmo de solución:
definir cant,res como flotantes;definir num como entero;leer la cantidad deseada y guardarla en cant.res=cantnum=la parte entera de res/500.0res=res-num*500.0printf(“\n billetes de 500=%d”,num);Si res es distinto de cero, entoncesnum=la parte entera de res/200.0res=res-num*200.0printf(“\n billetes de 200=%d”,num);Si res es distinto de cero, entonces
●
●
●
Imprimir res.
Cajero automático:(cont.)● Programa.
– Ver:http://www.ifug.ugto.mx/~gonzart/notas/cajero.c
Cajero automático:(cont.)● Verificación de la operación.
– Que pasa con 123.25?– Con 123.35?– Con 0?– Con -123.25?
Refracción de un rayo:● Definición del problema:Se desea calcular una tabla con el angulo de refracción para ángulos de incidencia desde 0o hasta 90o en incrementos de 5o, para agua, vidrio y diamante, como medios refractantes.
Refracción de un rayo:(cont).
● Solución al problema:
– Indices de refracciónagua=1.33vidrio=1.50diamante=2.42
r=sin−1ni sin i nr
i
r
medio incidente
medio refractante
Refracción de un rayo:(cont).● Algoritmo de solución:
Define PI=3.141592654Define ni, na,nv,nd, i,ir, ra,rv,rd, números dobles.Asigna na=1.33Asigna nv=1.50Asigna nd=2.42Asigna ni=1.00Imprime “tabla para el angulo ....”Repite (i=0 a 90 de 5 en 5)
asigna ir=i*PI/180.0asigna ra=asin(ni*sin(ir)/na)asigna ra=ra*180.0/PIasigna rv=asin(ni*sin(ir)/nv)asigna ra=ra*180.0/PIasigna rd=asin(ni*sin(ir)/nd)asigna ra=ra*180.0/PIescribe (ra,rv,rd)
● Fin de repite
Refracción de un rayo:(cont).
● Programa.– Ver:http://www.ifug.ugto.mx/~gonzart/notas/refr.c
Refracción de un rayo:(cont).
● Verificación de la ejecución.– Revisar que el angulo de incidencia esté dentro del rango solicitado.
– Hacer algunos cálculos de manera manual.
– Observar si tienen sentido los resultados.
Contador de caracteres, palabras y renglones.
● Definición del problema:Hacer un programa que cuente el número de caracteres, palabras y renglones de algo tecleado.
Tabla de código ascii.http://www.lookuptables.com/
Contador de caracteres, palabras, renglones.(cont.)
● Solución al problema:– Un caracter es cualquier entrada excepto el fin del archivo
● Contar los caracteres que no sean EOF.
– Una palabra es la consecución de caracteres, las palabras se separan por espacios en blanco (spc), tabuladores (\t) y cambios de lineas (\n) (observar el plural).
● Contar el número de transiciones de no-palabra a palabra.
– Una linea SIEMPRE está separada por un cambio de linea.
● Contar el numero de \n.– El fin del docto es un EOF.
Contador de caracteres, palabras, renglones.(cont.)
● Algoritmo de solución:Definición ch como carácter.Definición dentro_palabra como entero.Definición ncarac,npal,nren como enteros.Asigna dentro_palabra=0.Asigna ncarac=npal=nren=0.Leer (ch).repite mientras ch sea diferente a EOF
incrementa en uno a ncarac.si (ch es un cambio de linea)
incrementa en uno a nren.Si (ch es spc o tab o cambio de linea)
asigna dentro_palabra=0si no y si dentro_palabra es cero
incrementa npal en unoasigna dentro_palabra=1
leer (ch)fin de repite Imprime(ncarac,npal,nren)
Contador de letras, palabras, renglones.(cont.)
● Programa.– Ver:http://www.ifug.ugto.mx/~gonzart/notas/cuenta.c
Contador de letras, palabras, renglones.(cont.)● Verificación de la ejecución.
– Hacer un texto donde se conozcan el número de palabras, renglones y caracteres:texto.txt,lo puede encontrar en el archivo zip:http://www.ifug.ugto.mx/~gonzart/notas/secuencias.zip
o en:http://www.ifug.ugto.mx/~gonzart/notas/texto.txt