Mostrando entradas con la etiqueta Algoritmia. Mostrar todas las entradas
Mostrando entradas con la etiqueta Algoritmia. Mostrar todas las entradas

domingo, 20 de junio de 2010

Lenguaje C# - Tercera parte (Condicionales)

Retomando la serie de tutoriales sobre el lenguaje C#, esta vez escribiré sobre el manejo de condicionales. En el tutorial sobre operadores se toco algo del tema, al referirnos a los distintos tipos de operadores que existen en los lenguajes de programación, siendo los operadores parte fundamental en la construcción de condiciones.

Antes de empezar a definir técnicamente, es necesario definir el concepto de condición, las condiciones son preguntas o evaluaciones de los elementos que se presentan antes de poder realizar una acción. Según la RAE una condición (en una de sus tantas definiciones) se refiere a "circunstancias que afectan a un proceso o al estado de una persona o cosa" ahora en programación quizás la definición sea más sencilla.


--

--
En cualquier lenguaje de programación la condición está dada por la evaluación y comparación de dos o más valores siempre teniendo en cuenta que estas condiciones se deben dar en parejas (esto ya lo dije en el anterior tutorial) es decir que las comparaciones solo se pueden hacer de dos en dos, cada una de las comparaciones entrega un valor booleano, es decir solo puede entregar valores verdaderos y/o falsos.

Después de obtener el valor booleano de cada comparación estos se pueden comparar por medio de las compuertas lógicas AND (&&), OR (||) y NOT (!), existen las tablas de verdad que representan los resultados que podemos obtener el comparar los valores de tipo booleano entre ellos.

Tabla de Verdad para AND (&&)

V&&VV
V&&
FF
F&&
VF
F&&
FF


Tabla de Verdad para OR (||)

V||VV
V||
FV
F||
VV
F||
FF

La compuerta lógica representa una negación de una expresión de esta manera:

! verdadero = falso
! falso = verdadero
!(verdadero && falso) = verdadero (recordemos que V y F da falso, al negar la expresión se vuelve verdadero).

Las condiciones en el lenguaje C# al igual que en lenguajes como JAVA, PHP, JavaScript, ActionScript, etc están dadas por la palabra if (sí) seguida de las condiciones entre paréntesis y las acciones dentro de llaves ( {...} ).
if(a == b){
//acciones en caso de que se cumpla la condición
}
Por defecto el if siempre valida la última respuesta contra un verdadero es decir:
bool a = true;
if(a==true) // es lo mismo que decir: if(a)
En caso de que no se cumpla la condición también es posible utilizar la sentencia else (de lo contrario) que representa la otra posibilidad dentro de una condición que tiene número limitado de acciones.

Suponiendo el caso de un interruptor que solo puede estar encendido o apagado la condición sería esta:
bool interruptor = true //está encendido
if(interruptor){ //si el interruptor está encendido
...
}
else{ //de lo contrario
...
}
Suponiendo que se tengan más de dos opciones es posible agregar un if a un else, por ejemplo en el caso de determinar el signo de un número:

int x = valor;
if(x>0){
//x es positivo
}
else if(x<0){
//x es negativo
}
else{
//x es neutro (0 es un valor neutro)
}
Dentro de C# también existe el Switch Case que es una herramienta muy buena en caso de tener una serie de opciones preestablecidas, sin embargo no vamos a tocar esa herramienta todavía.

Esto es todo por este tutorial y dentro de un tiempo seguiré escribiendo, el siguiente tutorial será sobre ciclos repetitivos.

--

Leer más...

lunes, 17 de mayo de 2010

Lenguaje C# - Segunda parte (Operadores)

Siguiendo con la serie de tutoriales para aprender a programar con C#, esta vez escribiré sobre el uso de los operadores, su importancia y algunos ejemplos de como funcionan, no es un tema complicado pero siempre es necesario saber cómo funcionan.


Nota: recuerda que este es el segundo de una serie de tutoriales, el primero esta aquí.

--

--
Lo primero es definir el concepto de operador. Un operador es un símbolo que representa una acción determinada para una variable o valor y así como en español la coma ( , ) indica una pausa corta y el punto ( . ) indica una pausa un poco más larga, en aritmética existen operadores que indican la ejecución de determinado proceso, por ejemplo:
2 + 2 = 4
En este caso el operador es el signo mas ( + ) que indica que se debe hacer una suma o un incremento de dos valores dados.
Los operadores en programación están en categorías dependiendo de su funcionalidad, los primeros son los operadores aritméticos que a su vez se dividen en binarios y unarios, los operadores relacionales y los operadoresLógicos.

Operadores Aritméticos

Binarios: los operadores binarios indican operaciones sencillas de incremento (suma o multiplicación ) y decremento (resta, división y modulo), estos son los operadores binarios:
  • +: representa la suma de dos o más valores o variables.
  • -: representa la resta de dos o más valores o variables.
  • *: representa la multiplicación de dos o más valores o variables.
  • /: representa la división de dos o más valores o variables.
  • %: representa el modulo (obtención del residuo de una división) de dos o más valores o variables.
Unarios: los operadores unarios representan operaciones simplificadas de incremento decremento y modificación de signos, estos son los operadores unarios:
  • ++: Incrementa el valor de una variable en una unidad.
  • --: Decrementa el valor de una variable en una unidad.
  • -: Cambia el signo de una variable, es como multiplicar por -1.
Ejemplos:
  • 2 + 2 = 4
  • 10 - 5 = 5
  • 4 * 6 = 24
  • 8 / 2 = 4
  • 8 % 2 = 0 (cero es el residuo de la división 8/2)
  • c=4; c++; //c=5 (c inicia siendo igual a 4, después del incremento [c++], c vale 5)
  • d=10; d--; //d=9
  • e = -(4) // e = -4
  • f = -(-6) // f = 6 (por regla de signos menos por menos igual a mas)
En conclusión los operadores unarios, simplifican el proceso de modificación de valores ya que al escribir c++ se hace lo mismo que c=c+1.

Operadores Relacionales

Son operadores que se encargan de unir y comparar dos o más valores, siempre se utilizan en comparaciones de parejas y están dadas por los símbolos:
  • = : igual que
  • != : diferente a
  • > : mayor que
  • < : menor que
  • >= : mayor igual que
  • <= : menor igual que
Estos operadores se usan para comparar valores de variables por pares es decir,no se pueden comparar más de 2 valores al tiempo:
  • a > b > c //ERROR
  • (a > b) && (b > c) //BIEN
Cuando se requiere hacer una comparación de varios valores se deben usar losOperadores Lógicos, que son operadores de unión, también llamados compuertas lógicas, estos operadores pueden unir dos o más pares de valores comparados por medio de los operadores relaciones y están dados por estos símbolos:

  • && : Operador AND (Y) quiere decir que todas las condiciones deben ser verdaderas para que se ejecute una acción.
  • || : Operador OR (O) quiere decir que de todas las condiciones solo una debe ser verdadera y se asume que con eso es suficiente para hacer determinada acción.
  • ! : Operdaro NOT (NO) quiere decir que se niega la afirmación para cambiar su valor, es decir cambia de verdadero a falso y de falso a verdadero.
Es muy importante reconocer cuando y como se deben utilizar los operadores lógicos, ya que estos indican cual será el flujo de ejecución de nuestras aplicaciones. Supongamos que estamos desarrollando un formulario en el que todos los datos del usuario son obligatorios, cuando el usuario final presione clic en el botón para guardar los datos, debemos validar si toda la información está debidamente diligenciada, en ese caso usaríamos al operador && ya que este indica que todo debe ser igual a verdadero.

if(nombre.text != "" && apellido.text != "" && telefono.text != "" ) // OK

La condición pregunta por el valor del texto de tres campos de texto (nombre, apellido, telefono), si el valor de texto es diferente de nada (es decir, si está lleno) quiere decir que todo está bien, ahora en caso de que alguno de los campos no cumpla la condición no se puede guardar la información y se le mostrará una alerta o un mensaje al usuario.

Es importante ver como las condiciones están dadas por parejas: telefono.text!= "" estas parejas se forman por valor operador relacional valor y cuando se desea comparar ese resultado por otro valor es necesario implementar los operadores lógicos.

Esto es todo para este tutorial, en el siguiente escribiré sobre las tablas de verdad, y sobre el manejo de condiciones en C#.

Espero sus comentarios.
--

Leer más...

miércoles, 28 de abril de 2010

Lenguaje C# - Primera parte (variables)

Del mismo modo como hice un post para iniciar con el lenguaje ActionScript, voy a hacer uno de como iniciar con C#, ya que he tenido que dar clases de algoritmia con el lenguaje y una constante es la dificultad para aprender el lenguaje desde ceros.

Antes que nada es necesario entender los conceptos básicos de la algoritmia, conceptos como variables, condiciones, ciclos, arreglos son necesarios para empezar a trabajar con cualquier lenguaje de programación, así que haré un pequeño resumen de cada uno de los elementos que acabo de mencionar.
memoria ram
..


Varibles: las variables son espacios en memoria RAM que almacenan información que necesitan los sistemas para su ejecución, ejemplos de variables, son los datos del usuario en el correo electrónico o en Facebook, generalmente están compuestas por Nombre, Tipo de Dato y Valor.

La memoria RAM, funciona como un gran Bus, que tiene espacios disponibles para N cantidad de variables entre más grande sea la memoria RAM, más variables puede manejar sin fallar, y del mismo modo que un bus, la memoria puede funcionar con sobrecupo, sin embargo el rendimiento va a ser lento.

SobreCupo
lo sé, esto no es un bus, pero la imagen expresa lo que quiero decir.

La variable como su nombre lo indica, es un objeto que está cambiando, y por lo tanto no cuenta con información constante, el cambio de la información se ve reflejado en tiempo de ejecución, es decir cuando una aplicación desarrollada es ejecutada al final por el usuario.

En C# la declaración de las variables se hace con un orden especifico, este orden es igual para lenguajes como JAVA. Esta es una demostración del orden en el que se deben declarar las variables.


Como se ve en la imagen, la declaración de las variables esta dada primero que todo por el tipo de dato, esto funciona como una categoría para almacenar información, de esta manera, se pueden crear variables de tipo numéricas, de cadenas de caracteres, de valores verdaderos o falsos, etcétera, después del tipo de dato va el nombre de la variable así pues si lo que vamos a almacenar es la suma de dos números enteros el resultado se debe almacenar en una variable de tipo entero.

int resultado = 2+2;

Nota: Una de las condiciones del lenguaje C#, así como de JAVA y por herencia tomadas del lenguaje C es que todas las sentencias de código deben terminar con punto y coma ( ; ) exceptuando condiciones, ciclos y funciones.

Los tipos de datos más comunes son los numéricos (int, double, float, uint, entre otros), los de caracteres (char y string) y los de valores verdaderos o falsos (bool).

Teniendo en cuenta lo anterior es posible crear una variable de cualquier tipo de dato, pero la condición es que esa variable solo almacenará información de ese tipo de dato, es decir en un contenedor de agua no se puede depositar cerveza (si, yo siempre con el cuento de la cerveza)

Estos son algunos ejemplos de como se crean variables para cada tipo de información:

string saludo = "Hola, cómo estas?";
double gradosCentigrados = 4.5;
int totalManzanas = 50;
bool habilitado = true;

Nota: las variables tienen una definición que está orientada bajo los estándares de la ECMAScript, por eso no tienen espacios ni caracteres especiales, si quieres ver más de eso, puedes leer esto.

Este es el primer articulo de una serie que iré escribiendo en primera medida para retomar el blog y en segunda para explicar los conceptos básicos del lenguaje C#.

Espero sus comentarios.
..

Leer más...