Introducción al lenguaje C

Hola estimados lectores, sean bienvenidos a este tutorial del lenguaje de programación C y los que están por continuar después de deste. Hablemos un poco de este lenguaje comenzando con una pequeña introducción y viendo para que es el lenguaje, para que sirve y requisitos.

Acerca del lenguaje y un poco de historia:

El lenguaje de programación C, es un lenguaje procedimental usado para crear aplicaciones de proposito general, fue creado en 1972 por Dennis Ritchie usando un sistema operativo con base Unix.
Tengamos también en cuenta que C es un lenguaje de alto nivel compilado, lo que quiere decir que para ejecutar un lenguaje hecho en C sera necesario un compilador que basicamente traduce nuestro codigo natural de C en codigo maquina para que la computadora pueda comprenderlo.

Antes de continuar veamos un ejemplo sencillo de un programa en C para que veamos como seria su codigo, haremos el muy conocido “Hola mundo”!

#include <stdio.h>

int main()
{
   printf("Hola mundo! \n");

   return 0;
}

Lo que hace este programa es imprimir en una terminal el mensaje “Hola mundo!”. Recordemos que los programas en C deben guardarse con la extensión .c y posteriormente deberán compilarse para que se puedan ejecutar.

Veamos un poco acerca de este lenguaje en el siguiente video tutorial para conocer un poco de código del mismo.

Video de introducción al lenguaje C

 

Ciclo while en Python

En Python tenemos una palabra reservada llamada “while” que nos permite ejecutar ciclos, o bien secuencias periódicas que nos permiten ejecutar codigo múltiples veces.

El ciclo while nos permite realizar multiples iteraciones basandonos en el resultado de una expresión logica que puede tener como resultado un valor verdadero o falso (true o false).

Para utilizar este ciclo tenemos la siguiente sintaxis.

Sintaxis del ciclo while

#donde expresion es verdadero

while (expresion):
      #codigo...

En este ejemplo es importante comprender que “expresion” es una evaluación logica que al dar como resultado un valor verdadero, se permitira que el ciclo while siga ejecutandose continuamente, cuando la expresión cambie a un valor falso, el ciclo cesará. Veamos el siguiente ejemplo para comprenderlo mejor.

Ejemplo 1 – contador

#!/usr/bin/python

contador = 0
while (contador < 5):
   print 'El contador es :', contador
   contador = contador + 1

print "Fin del programa"

En este ejemplo tenemos un contador con un valor inicial de cero, cada iteración del sitio while manipula esta variable de manera que incremente su valor en 1, por lo que despues de su primera iteración el contador tendrá un valor de 1, luego 2, y así sucesivamente. Eventualmente cuando el contador llegue a tener un valor de 5, la condición del ciclo “contador < 5″ sera falsa, por lo que el ciclo terminará arrojando el siguiente resultado.

El contador es : 0
El contador es : 1
El contador es : 2
El contador es : 3
El contador es : 4
Fin del programa

 Interrupción de ciclos con break

Adicionalmente existe una forma alternativa de interrumpir o cortar los ciclos utilizando la palabra reservada “break”. Esta nos permite salir del ciclo incluso si la expresión evaluada en while (o en otro ciclo como for) permanece siendo verdadera. Para compender mejor usaremos el mismo ejemplo anterior pero interrumpiremos el ciclo usando break.

#!/usr/bin/python

contador = 0
while (contador < 5):
   print 'El contador es :', contador
   contador = contador + 1
   if (contador > 3):
       break

print "Fin del programa"

En este ejemplo evaluamos dentro del ciclo while si la condición de “contador > 3″ es verdadera, al ser así se utilizará break para interrumpir el ciclo, de manera que el resultado de este programa seria el siguiente:

El contador es : 0
El contador es : 1
El contador es : 2
Fin del programa

Espero que con este tutorial hayan podido comprender mejor la función while en python. No olviden dejar sus comentarios y recomendaciones, y seguir al tanto para mas tutoriales.

 

Ciclo for en Ruby.

Si éste es tu primer acercamiento a la programación, necesitas saber que un ciclo es un bloque de instrucciones que se repite un número definido de veces, existen diferentes tipos de ellos y uno de los más comunes es el ciclo for.

El ciclo for en Ruby, permite que nosotros definamos un rango entre el cual, un iterador, se irá moviendo, sirve para repetir un proceso un determinado número de veces tomando un iterador como referencia entre éstas veces. Si lo anterior no te quedó muy claro, es porque necesitamos un ejemplo:

for i in(0..9)
    puts i
end

Como ves, la sintaxis es clara y muy sencilla, tenemos un iterador  y un rango 0..9, lo que significa que el iterador iniciará el ciclo siendo igual a nueve e irá aumentando de uno en uno hasta llegar al 9, cada vez que aumenta entra al bloque de instrucciones, éste bloque lo único que hace en el ejmplo es imprimir el valor del iterador i.

Existen un grupo de palabras reservadas que tienen la capacidad de modificar el comportamiento de un ciclo, la primera que veremos es break y lo que hace es sacar el ciclo, es decir, sin importar en qué parte del rango se encuentre el iterador, el ciclo se terminará una vez haya encontrado la palabra break, veamos un ejemplo:

for i in(0..9)
    if(i == 3) break end
    puts i
end

En el ejemplo anterior, una vez el ciclo valga 3, se terminará y ya no recorrerá hacia el 4.

La siguiente palabra es next y lo que hace es sencillamente saltar la interación en la que se encuentra y pasar a la siguiente.

for i in(0..9)
    if(i == 3) next end
    puts i
end

De modo que si tu probaras el ejemplo anterior, notarías que el 3 no aparece en la consola, y la razón es que saltamos esa iteración a través de la palabra reservada next.

Por último tenemos una con la que querrás tener mucho cuidado, y es redo, y lo que hace es sencillamente repetir la iteración, es decir, lo contrario a next.

for i in(0..9)
    puts i
    if(i == 3) redo end
end

Como te mencionaba, ten cuidado, puesto que el ejemplo anterior se ciclará imprimiendo 3 una y otra vez porque redo le está pidiendo que repita la iteración.

Sé que quedarás con dudas como por ejemplo, qué pasaría si quiero aumentar de 2 en 2, en lugar de 1 en 1. Bien eso lo veremos en otros tipos de ciclos más Rubyanos (si existiera esa palabra) que el for.

Sentencia Case en Ruby.

La instrucción case en Ruby es una que me gusta mucho, sería el similar de la instrucción switch en otros lenguajes, pero a mi parecer está estructurada de una forma más legible.

Supongamos que queremos evaluar si una persona puede o no entrar a una película basándonos en su edad, bien, según Wikipedia si la película es clasificación G todos pueden entrar, PG-13 menores de 13 años con padres, R menores de 17 años con padres y NC-17 sólo mayores de edad, ¿cómo podríamos escribir un programa así en Ruby?

Si dominas la instrucción if bien podrías pensar en algo como lo siguiente.

if c == "G"
      print "Todos entran"
elsif c == "PG-13"
      print "Si eres menor de 13 años necesitas un adulto" 
elsif c == "R"
      print "Si eres menor de 17 años necesitas un adulto" 
elsif c == "NC-17"
      print "Solo mayores de 17 entran." 
end

Lo anterior solucionaría el problema, suponiendo que la variable c almacena la categoría de la película a la que se quieren entrar, la solución la enfrentamos haciendo uso de if’s anidados esto significa que si el primer if no es verdadero evaluará el siguiente elsif y así sucesivamente.

Ahora bien, aunque solucionamos el problema, queda claro que no es la mejor forma de enfrentarlo, dada la cantidad de código que hemos repetido. En estos casos, podríamos implementar un case, como en el siguiente ejemplo:

clasificacion = "G"

disponibilidad = case car
   when "G" then "Todos pueden entrar"
   when "PG-13" then "Menores de 13 con un adulto"
   when "R" then "Menores de 17 con adulto"
   when "NC-17" then "Solo mayores de edad"
   else "Error en la clasificacion"
end
print disponibilidad

Como mencionaba antes, a mi parecer, la instrucción es clara por sí sola, almacenas en una variable el resultado del case y evalúas cada posibilidad con un when, la palabra reservada then define que valor se guardará en la variable en caso de que se haya cumplido la condición.

Ahora bien, en el caso anterior vimos un ejemplo evaluando cadenas, sin embargo, la instrucción case también evalúa números y rangos, veámoslo en un ejemplo:

calificacion = 9

resultado = case calificacion
   when 0..5 then "Reprobaste"
   when 6..7 then "Apenas pasaste"
   when 8..9 then "Buen trabajo!"
   when 10 then "Excelente"
   else "Error en la calificacion recibida"
end

puts resultado

Y así de sencillo es como acomodamos la instrucción a números.

Con esto terminamos el análisis de la instrucción case y pasaremos en los siguientes artículos a ver cosas relacionadas con los ciclos.