Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...
Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...
Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Lenguaje</strong> C<br />
<strong>Bucles</strong>, <strong>Condicionales</strong>, <strong>operadores</strong> y<br />
<strong>Algoritmos</strong>.<br />
Omar Andrés Zapata Mesa<br />
Grupo de Fenomenología de<br />
Interacciones Fundamentales,<br />
(Gfif)<br />
Universidad de Antioquia
Operadores<br />
Los <strong>operadores</strong> son aquellos elementos del<br />
lenguaje que nos permiten hacer<br />
asignaciones, operaciones matemáticas y<br />
comparación lógica.<br />
Se clasifican según la cantidad de términos a<br />
operar como unarios, binarios y terciarios.<br />
Los <strong>operadores</strong> son comúnmente usados en<br />
conjunto con los bucles y los condicionales<br />
para controlar el flujo de información en el<br />
programa.
Operadores Aritméticos<br />
Operador Propósito Tipo<br />
x++ Post incremento Unario<br />
++x Pre incremento Unario<br />
x-- Post decremento Unario<br />
--x Pre decremento Unario<br />
a-b<br />
-a<br />
Resta o cambio a<br />
negativo<br />
Binario<br />
Unario<br />
a*b Multiplicacion Binario<br />
a/b Division Binario<br />
a%b Modulo Binario<br />
a+b Suma Binario
Operadores de Asignación.<br />
Operador Proposito Tipo<br />
= Iguala Binario<br />
-= Resta e iguala Binario<br />
+= Suma e iguala Binario<br />
/= Divide e iguala Binario<br />
*= Multiplica e iguala Binario<br />
%= Saca el modulo e<br />
iguala<br />
Binario
Operadores Lógicos<br />
Operador Proposito Tipo<br />
> Mayor que Binario<br />
< Menor que Binario<br />
>= Mayor Igual Binario<br />
Otros Operadores<br />
Operador Proposito Tipo<br />
*x Puntero a memoria Unario<br />
&x Referencia a memoria Unario<br />
[ ] Indice Unario<br />
sizeof Capacida Unario<br />
( ) Llmado a funcion o<br />
casting<br />
Unario<br />
?: Condicional Terciario
<strong>Condicionales</strong><br />
Los condicionales son aquellas<br />
expresiones encargadas de controlar el<br />
flujo de información en el programa, a<br />
través de operaciones lógicas.<br />
C soporta los siguientes condicionales:<br />
if Evalúa si una expresión lógica o<br />
aritmética es falsa o verdadera para<br />
acceder a un segmento de código.
<strong>Condicionales</strong><br />
else se usa en conjunto con if<br />
(anidado), para tomar una acción en<br />
caso de no cumplir con el primer<br />
condicional.<br />
switch (casos) se usa para tomar<br />
acciones diferentes de acuerdo al<br />
parámetro, se usa en conjunto con<br />
sentencias como case, default y break
Ejemplos <strong>Condicionales</strong><br />
#include <br />
int main()<br />
{<br />
float dividendo,divisor;<br />
}<br />
printf ("Dime el dividendo:\n");<br />
// scanf se usa para obtener datos desde el teclado<br />
scanf ("%f",÷ndo);<br />
printf ("Dime el divisor:\n");<br />
scanf ("%f",&divisor);<br />
if (divisor==0)<br />
printf ("\nNo podemos dividir un número por 0\n");<br />
else<br />
printf ("El resultado es: %f\n",dividendo/divisor);
Ejemplos <strong>Condicionales</strong><br />
#include <br />
//para la función exit stdlib.h<br />
#include <br />
int main()<br />
{<br />
int opcion;<br />
printf ("\nEjemplo de Menú de<br />
Programa");<br />
printf ("\n1.-Cargar fichero de<br />
datos");<br />
printf ("\n2.-Almacenar fichero de<br />
datos");<br />
printf ("\n3.-Modificar datos");<br />
printf ("\n4.-Salir");<br />
printf ("\n\nDime tu opción :");<br />
scanf ("%d",&opcion);<br />
switch (opcion){<br />
case 1:{/* Código para cargar fichero de<br />
datos*/<br />
printf("\"Se cargo el fichero de datos\"\n");<br />
break; }<br />
case 2:{ /* Código para almacenar datos */<br />
printf("\"Se guardo el fichero de<br />
datos\"\n");<br />
break; }<br />
case 3:{ /* Código para modificar datos */<br />
printf("\"Se modifico el fichero de<br />
datos\"\n");<br />
break; }<br />
case 4:{ /* Salir del programa */<br />
printf("\"Saliendo del programa\"\n");<br />
exit (0); }<br />
default :{<br />
printf ("\nSu opción no está disponible");<br />
printf ("\nCorra de nuevo e intente con<br />
otra.\n");<br />
}}}
<strong>Bucles</strong><br />
Los bucles son instrucciones que nos<br />
permiten hacer tareas que deben ser<br />
repetitivas o iterativas<br />
C cuenta con los siguientes tipos de<br />
sentencias para los bucles:<br />
while (mientras), encargado de repetir<br />
segmentos de código mientras una condición<br />
esta dada.<br />
do while es un ciclo anidado usado<br />
principalmente para indicar que haga la<br />
operación a priori y después valide si continua<br />
o no.
<strong>Bucles</strong><br />
for (para), permite hacer iteraciones<br />
controladas determinando cuanto incrementar<br />
o disminuye un valor y poniendo una<br />
condición de ruptura.<br />
break se usa comúnmente con while, para<br />
indicar el rompimiento del ciclo.<br />
continue funciona de forma algo similar a<br />
break, solo que en vez de terminar omite el<br />
código que sigue desde el punto en que es<br />
llamado y pasa a evaluar la condición<br />
directamente.
Ejemplos <strong>Bucles</strong><br />
#include <br />
int main()<br />
{<br />
int i;<br />
int tabla1,tabla2;<br />
tabla1 = 2; /* Primero la tabla del dos */<br />
tabla2 = 5; /* y a continuación la tabla del cinco*/<br />
//analizar con i-- y hacer para que avance de a dos<br />
for (i=1;i
#include <br />
Ejemplos <strong>Bucles</strong><br />
int main()<br />
{<br />
int numero=1;<br />
int salida=0;<br />
//probar con bucle infinito y rompimiento break<br />
while (numero!=salida)<br />
{<br />
printf ("\nAdivina cual es el numero para salirme entre [-10:10 ]:");<br />
scanf ("%d",&numero);<br />
if((numero>10)&&(numero
goto y etiquetas<br />
goto es una sentencia que indica al programa<br />
ir hasta determinado punto indicado por una<br />
etiqueta. La etiqueta es solo una señal dejada<br />
en el programa para indicar un punto<br />
estratégico<br />
Los programadores avanzados sugieren que<br />
goto y el sistema de etiquetas no se debería<br />
usar, debido a que hace ilegible el programa,<br />
además C cuenta con una serie de sentencias<br />
como break y continue que son necesarias<br />
para hacer un código bien diseñado.
Ejemplo goto<br />
#include <br />
int main(){<br />
int n, a=0;<br />
do{<br />
printf( "Introduzca un numero entero: " );<br />
scanf( "%d", &n );<br />
if ( n == 0 ){<br />
printf( "ERROR: El cero no tiene opuesto.\n" );<br />
goto etiqueta_1;/* En el caso de que n sea un cero, el control de<br />
programa salta a la primera instrucción después de<br />
etiqueta_1. */<br />
}<br />
printf( "El opuesto es: %d\n", -n );<br />
a += n;<br />
} while ( n >= -10 && n
Pruebas de escritorio<br />
La prueba de escritorio consiste en hacer del<br />
algoritmo general una pequeña parte para<br />
verificar la consistencia del mismo.<br />
Las pruebas de escritorio se suelen hacer en<br />
tablas que contengan las variables más<br />
sobresalientes del código y partir de algunos<br />
supuestos iniciales como valores iniciales del<br />
código para hacer un seguimiento.
Ejercicio<br />
Hacer un programa en c que me pida un<br />
número y me le haga la sumatoria.<br />
Hacer una prueba de escritorio con una<br />
tabla de valores donde se verifique que<br />
el algoritmo funciona.
Solución<br />
#include <br />
int main(){<br />
int n, a=0,i;<br />
printf( "Introduzca un numero entero mayor que cero:");<br />
scanf( "%d", &n );<br />
if ( n
Prueba de escritorio<br />
i a<br />
0 0<br />
1 1<br />
2 3<br />
3 6<br />
Nota: el supuesto fue n=3
Ejercicios<br />
Usando tipos de datos static, register y<br />
volatile, probar los bucles.<br />
Hacer un programa que calcule la<br />
productoria de un número.<br />
Hacer un programa que calcule el<br />
factorial de un número.<br />
Hacer un programa que calcule los<br />
numero primos hasta un número dado<br />
por línea de comando.
Tarea<br />
¿Qué son las funciones?<br />
¿Qué son funciones recursivas?<br />
¿Qué es el prototipo de una función?
Referencias<br />
http://es.wikipedia.org/wiki/Operadores_de_C_y_C%2B%2B<br />
http://www.gratiszona.com/apuntes/lenguaje_c/04_<strong>operadores</strong>.htm<br />
http://www.ulpgc.es/otros/tutoriales/mtutor/mt2c.html<br />
http://www.carlospes.com/curso_de_lenguaje_c/04_03_inst<br />
ruccion_goto.php