Está en la página 1de 24

ELEMENTOS DE UN

LENGUAJE DE
PROGRAMACION
Lenguaje C
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 95
Continuacin
Ejercicio
Ingresar por teclado un carcter y decir si el
carcter es un smbolo, nmero (0 .9) o una letra
(A .Z, a .z, no incluir o ni acentuadas).
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 96
Entrada Salida
car Es smbolo
Es nmero
Es letra
Sentencia switch
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 97
Alternativa mltiple, permite seleccionar, por
medio de una expresin, un bloque de sentencias
a ejecutar entre n posibles.
El resultado de evaluar la expresin debe ser un
valor perteneciente a un tipo de dato finito y
ordenado, es decir, entero, lgico, carcter,
enumerado o subrango.
Sentencia switch
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 98
switch(var) {
case cte1:
sent1;
break;
case cte2:
sent2;
break;

case cten:
sentn;
break;
[default:
sent;]
}
~
~
var
sent1 sent2
sentn sent
cte1 cte2 cten default
Sentencia switch
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 99
~
~
lados
3 4 5 default
Escribir
Tringulo
Escribir
Cuadrado
Escribir
Pentgono
Escribir
Otro
Sentencia switch
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 100
switch(lados) {
case 3:
printf(Tringulo); break;
case 4:
printf(Cuadrado); break;
case 5:
printf(Pentgono); break;
default:
printf(Otro);
}
Funciones Matemticas
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 101
El ANSI C tiene una biblioteca estndar de
funciones matemticas.
Se debe incluir al comienzo del programa el
archivo math.h con la sentencia:
#include<math.h>
Funciones Trigonomtricas
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 102
Funcin Descripcin
double sin(double x) Seno(x), x en radianes
double cos(double x) Coseno(x)
double tan(double x) Tangente(x)
double asin(double x) arco seno(x) en radianes
double acos(double x) arco coseno(x)
double atan(double x) arco tangente(x)
Argumento o parmetro Tipo del valor devuelto
Potencias y Logaritmos
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 103
Funcin Descripcin
double pow(double x,
double y)
Devuelve el valor de x
y
double exp(double x) Devuelve el valor de e
x
double log(double x) logaritmo neperiano de x
double log10(double x) logaritmo decimal de x
Argumento o parmetro Tipo del valor devuelto
Raz Cuadrada, Valor Absoluto, Redondeo de
Decimales
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 104
Funcin Descripcin
double sqrt(double x) Devuelve x (x positivo)
double abs(int x) Devuelve |x| (entero x)
double fabs(double x) Devuelve |x| (double x)
double ceil(double x) Redondea x hacia arriba al
entero mas cercano
double floor(double x) Redondea x hacia abajo al
entero mas cercano
Argumento o parmetro Tipo del valor devuelto
Funciones hiperblicas
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 105
Funcin Descripcin
double sinh(double x) seno hiperblico(x), x en
radianes
double cosh(double x) coseno hiperblico(x)
double tanh(double x) tangente hiperblica(x)
Argumento o parmetro Tipo del valor devuelto
Modifican el flujo secuencial en la ejecucin del
programa.
Permiten repetir la ejecucin de unos procesos un
determinado nmero de veces o hasta que se
cumpla una condicinde tipo lgico.
Sentencia while
Bucle con condicin al inicio
Sentencia do .. while
Bucle con condicin al final
Bucles
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 106
Sentencia while
Permite ejecutar repetidamente una sentencia o
bloque de sentencias, mientras se cumpla una
determinada condicin.
while (condicin) {
sentencia;
}
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 107
condicin
sentencia
~
V
F
~
Ejemplo 1
Escribir un programa que lea N notas.
Dar como respuesta el promedio de las notas
ingresadas.
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 108
Entrada Salida
N
nota
suma
prom
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 109
prom suma/N
Fin
Escribir
prom
a
i N
i i + 1
V
F
suma suma +nota
Leer
nota
Inicio
i 1
suma 0
Leer
N
a
Solucin 1
Ejemplo 2
Escribir un programa que permita ingresar
sucesivamente notas por teclado, verificando que
seannotas vlidas.
El programa terminar cuando se ingrese una
nota no vlida.
Dar como respuesta el promedio de las notas
ingresadas.
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 110
Entrada Salida
nota prom
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 111
0 nota 20
suma suma +nota
V
F
conta conta +1
Leer
nota
Inicio
suma 0
conta 0
a
Leer
nota
prom suma/conta
Fin
Escribir
prom
a
Solucin 2
Sentencia do while
Anloga a while, con la diferencia de que la
evaluacin de la condicin se realiza al final del
bucle, despus de haber ejecutado al menos una
vez las sentencias.
do {
sentencia;
}
while (condicin);
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 112
condicin
sentencia
~
V
F
~
Ejemplo 1
Realizar un programa que calcule la serie:
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 113
N
1
...
4
1
3
1
2
1
1 serie+ + + + + =
Entrada Salida
N serie
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 114
i N
serie serie +1/i
V
F
Leer
N
Inicio
serie 0
i i +1
i 1
Fin
Escribir
serie
Solucin 1
Ejemplo 2
Realizar un programa que calcule el valor de e
x
con un error menor a 10
-4
, dado que el valor del
exponencial para un valor de x se puede expresar
mediante la serie:
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 115
...
4!
x
3!
x
2!
x
x 1 e
4 3 2
x
+ + + + + =
Entrada Salida
x serie
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 116
|termino| >10
-4
serie serie +termino
V
F
terminotermino* x / conta
Leer
x
Inicio
serie 0
termino1
conta conta +1
conta 0
a
Fin
Escribir
serie
a
Solucin 2
Problema: Seccin Transversal de una Quebrada
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 117
Se tiene una serie de coordenadas (x,y) que
definen la seccin transversal de una quebrada, no
se sabe cuantos puntos son pero el ltimo punto
estar casi a la misma altura del primer punto con
una diferencia en valor absoluto menor a 0.1
Elaborar un DF que calcule:
- La profundidad del punto ms bajo.
- rea transversal aproximada de la quebrada.
- Profundidad media (hm=A/T), donde T=Ancho de
la superficie.
PROGRAMACION DIGITAL - CB412-I CICLO 2014-1 118
Entrada Salida
x1,y1
x2,y2
y1-ymin
A
T
Hm
x1,y1
x2,y2
x1,y1
x2,y2
x2,y2
x1,y1
CASO1 CASO2 CASO3
Problema: Seccin Transversal de una Quebrada