10.05.2013 Views

Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...

Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...

Lenguaje C Bucles, Condicionales, operadores y Algoritmos. - GFIF ...

SHOW MORE
SHOW LESS

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",&dividendo);<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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!