Programación en C. Parte 1

Esta es la segunda entrega de los tutoriales que hare sobre programación en C, el titulo dice parte 1 los que ya saben algo de programación entenderán por que y si no aquí se enteraran.

En la parte 0, me quede explicando una de las funciones mas usadas en el lenguaje C que se llama printf, que es una función de salida estándar y coloquialmente se le llama función para imprimir en pantalla.

C como muchos otros lenguajes maneja los ciclos: for, while, do-while también llamados bucles, en lenguajes mas actuales existe un tipo de ciclo llamado for-each, pero para C no nos interesa ya que no existe tal ciclo en este lenguaje.

Explicare en que consiste cada uno de los ciclos para pasar a explicar la función de condición if-else

For

Literalmente significa “para” sirve para hacer ciclos repetitivos, su sintaxis es:

int i;

for(i=0;i<20;i++)

{

//algo se ejecutara aquí

}

for(se inicializa_acumulador;condicion;incremento)

La i es el acumulador, en este ejemplo sencillo iniciamos a i con cero, después del punto y coma colocamos la condición que definirá cuantas veces se repetirá el ciclo, en este ira de cero a cuando i sea menor a 20, por eso el siguiente punto y coma define como se ira cargando el acumulador en este caso es i++ que significa que por cada vuelta se le sumara 1 a i.

Si analizamos bien la situación, nos daremos cuenta que si le estamos diciendo que cada vez sume a i 1 entonces el ciclo se repetirá 20 veces, que va de 0 a 19, si jugamos un poco con los valores en lugar de i++ podríamos haber puesto i=i+2, i+=2, i+=3, etc. Si nos ponemos a pensar matemáticamente las dos primeras condiciones dicen que a i le vayamos sumando en cada vuelta 2 y en la ultima condición le decimos que 3, con lo que las repeticiones se acortaran. Ya depende de cada uno como crear y manejar su ciclo y dependiendo de la situación las condiciones variaran.

Como nota adicional, si alguno ya ha programado en algún lenguaje mas actual, la sintaxis del ciclo for variara un poco en cuanto al acumulador y en Java como en C++ por ejemplo un for se escribe así:

for(int i=0;i<20;i++)

La diferencia radica que dentro del for se inicializa el acumulador, con esto podemos utilizar cuantas veces queramos la variable i, ya que al finalizar el for se destruirá y no existirá mas al contrario que en C, al finalizar el ciclo podríamos retomar su valor para saber que tiene después del ciclo, esto es un típico caso de lo que se llamaban variables “globales” en C.

While

Literalmente significa “mientras” y sirve también para hacer ciclos repetitivos, podemos crear mediante un ciclo while algo parecido a lo que hice con el for, ejemplo:

int i=0;

while(i<20)

{

//algo se ejecutara aqui

i++;

}

La sintaxis es mas sencilla ya que lo único que requiere while es una condición en este caso “mientras”  i<20 , no necesariamente tenemos que poner i++ ya que este no es el caso de un while y para ese trabajo esta el for.

¿Entonces para que sirve while? se preguntaran. Pues while como ya dije lo único que necesita es una condición como argumento, en caso de que esa condición se cumpla saldrá del ciclo. Ejemplo:

int i=0;

while(i<20)

{

algo paso aquí y de repente i=20;

}

¿Cuantas veces se ejecuto el while?, la respuesta puede ser 1, como tambien puede ser 100,50,80,1000, no se sabe, aquí  no es necesario ir de 1 en 1 o de 2 en 2 etc, si no de repente pum es 20, lo mismo puede suceder para argumentos que no sabrás cuantas veces vayan a ejecutarse pero en cuanto una condición sea verdadera termine la acción, con verdadera me refiero a que una condición se cumpla. De echo no confundir con variables booleanas y valores booleanos true y false, ya que el ANSI C no fue pensado para tener este tipo de variables, si se requiere se podrían construir con variables enumeradas o constantes macro, ya se me ocurrirá algún ejemplo para ello.

Siento mucho si me desvió de lo que voy explicando pero realmente esto lo voy escribiendo de acuerdo a como se me van ocurriendo las cosas y si se dan cuenta de que algo falto y no lo puse, hay dos sencillas razones o lo pase por alto o simplemente no lo se. Solo eso quería aclarar Bueno sigamos.

Como ya dije while tiene otro tipo de fin en la construcción de ciclos, un ejemplo sencillo y que en cursos de programación piden mucho es la construcción de un menú en el que se escojan ciertas opciones y si alguna de ellas no esta en lugar de un cierre abrupto o que finalice el programa simplemente se manda a llamar al menú nuevamente, pues bien eso se puede construir con un ciclo while, de echo se me acaba de ocurrir un menú para explicar otras partes del lenguaje mas adelante.

Do-While

Para no hacer larga la explicación sobre este tipo de ciclo ya que en esencia y funcionamiento es el mismo que while, la única diferencia es en la verificación de la condición, la sintaxis es la siguiente:

int i=20;

do

{

//aqui se ejecutara algo

}

while(i==20);

Si se dan cuenta la sintaxis cambia ya que primero se ejecuta la acción y después se hace la verificación de la condición, en el ejemplo que puse la condición verifica que i sea igual a 20, y efectivamente lo es, pero como eso se verifica al final entonces por lo menos una vez se ejecuta el ciclo.

Esto en un while ni siquiera hubiera entrado al ciclo.

Bueno ahora que ya saben como van los ciclos y que mas o menos se dieron una idea con las condiciones que se escriben para que estos funcionen, explicare en que consiste la función if-else.

If-else

Literalmente significa “si-entonces”,  esto es en programación algo así como una pregunta en nuestro código, si es esto, entonces haz esto otro, la sintaxis es bastante sencilla:

int dato=9;

if (dato<10)

{

dato =15;

}

else

{

dato=21;

}

Este es un sencillo ejemplo de como se usaría la condición, aquí estamos empezando con una variable llamada dato y su valor es 9, después esta la condición que dice : si dato es menor a 10, cambiar el valor de dato a 15. Como esto no es cierto ya que dato vale 9, “entonces” se saltara al else y dato cambiara su valor por 21. A grandes rasgos esto es lo que hace un if-else.

Si la condición que hay dentro del if se cumple entonces ejecutara cierta acción que haya dentro de if y al finalizar se saltara a else, con esto quiero decir que else nunca se ejecutara si la condición es verdadera, en caso contrario no se ejecutara nada dentro de if y se ejecutara lo que hay dentro de else.

Es bastante fácil no creen?.

Con los ciclos y condiciones podemos hacer maravillas y básicamente es el pilar de la programación al menos en lenguajes de alto nivel, todo lo demás son abstracciones: funciones, tipos de datos, arreglos, estructuras etc.

Y para finalizar esta parte que básicamente me centre en ciclos y condiciones y absolutamente nada del Lenguaje C, pero es bueno saber como funcionan estas cosas por que como dije lo demás solo son abstracciones.

Algunas cosas de la que podemos hacer con las condiciones de un while, for, do-while, if-else. Es que no solo estamos forzados a emplear una condición si no que dentro de los argumentos podemos meter mas condiciones, por ejemplo hacer que si variable es igual a 20 o mayor que 50 se haga algo, implícitamente ahí van dos  condiciones que al final se transformaran en 1 a cumplir.

¿Como se hace esto? pues con los operadores lógicos. Estos son:

  • && AND (el resultado es verdadero si ambas expresiones son verdaderas)
  • || OR (el resultado es verdadero si alguna expresión es verdadera)
  • ! NOT (el resultado invierte la condición de la expresión)

Estas son las expresiones que podemos usar en conjunto con los operadores:

Operador

Nombre

Ejemplo

Significado

< menor que a<b a es menor que b
> mayor que a>b a es mayor que b
== igual a a==b a es igual a b
!= no igual a (diferente) a!=b a es diferente de b
<= menor o igual a a<=b a es menor o igual a b
>= mayor o igual a a>=b a es mayor o igual a b

¿Como se implementa? Ejemplo:

while(i==7||i>10)

{

}

Esto quiere decir que solo se ejecutara el ciclo si i vale 7 o i sea mayor a 10, estas son dos condiciones, por ejemplo si i llega a valer 0,1,2,3,4,5,6,8,9,10, nunca se ejecutara el ciclo. Lo importante es en el operador ||, que dice que o es una o es otra pero no ambas.

while(i!=15&&k==10)

{

}

Aquí estamos ante una doble condición que forzosamente tienen que cumplirse si no no entrara al ciclo, En palabras dice esto: si i es diferente de 15 y k es igual a 10, solo así entrara al ciclo, como dije tendrán cumplirse las dos.

Bueno hasta aquí dejo la 2 parte o parte 1 de Programación en C, esto de las condiciones ya cada quien sabrá como construirlas y dependiendo de la necesidad serán de un tipo u otro, seria imposible ejemplificar todas las posibles condiciones pero ya cada uno sabrá como utilizarlas y construirlas.

Programación en C. Parte 0

4 comentarios en “Programación en C. Parte 1

  1. Pingback: Programación en C. Parte 0 « 80 Bits
  2. Permíteme que aclare como traducir el “for”.
    “For” viende de “for each” que en este caso es literalmente “por cada”, no “para cada”.
    La diferencia radica en que el bucle for se traduce como “hacer algo por cada elemento de un conjunto” que no es lo mismo que traducirlo como “hacer algo para cada elemento de un conjunto”
    Como ves esto último, la traduccion “for para”, significaría en castellano que debes manipular obligatoriamente ese elemento en el buble, cuando no es necesario.

    En mi opinión, creo que es mejor la traducción for each por cada

      • ok muchas gracias ..
        por lo que comentas precisamente por eso puse literalmente, por otro lado quise hacer la diferencia entre el for “normal” y el for-each que ese bucle existe en por ejemplo java c#, entre otros aunque no se escribe for-each..
        pero bueno volviendo al tema me gusto mas tu explicación que la mía
        “hacer algo por cada elemento de un conjunto” creo que es mas acertada😀

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s