Está en la página 1de 15

Saltar a contenido principal

Introducción a la programación con C#


Usted se ha identificado como Mariela Pavó (Salir)
Ruta a la página

 Página Principal
 / ► Mis cursos
 / ► P.O.O C#
 / ► Tema 3
 / ► Declaración de variables. Expresiones, operadores,...

Declaración de variables. Expresiones, operadores,


condicionales
Lección #3

Lección #3 Título: Declaración de variables. Expresiones, operadores, condicionales

Objetivo: Conocer el funcionamiento de las variables, operadores y condicionales dentro


de una clase.  

Contenidos:

 Declaración de variables.
 Expresiones.
 Operadores.
 Condicionales

Sesión de Cuestionario: Cuestionario Lección 3


Sesión Foro: Implementación de clases

  Valores y tipos

 Valores

Un valor (dato) es una entidad que puede ser manipulada por un programa.

 Ejemplos de valores: 18, José Martínez


En programación agruparemos los valores en tipos de datos, siguiendo el principio de que
el valor 18 y el valor z son de naturaleza distinta.

 Tipos primitivos

Un valor primitivo es aquel que no puede ser descompuesto en valores más simples, un tipo
primitivo es aquel cuyos valores son primitivos.

 Todos los lenguajes de programación (LP) tienen predefinidos (prehechos) un grupo de


tipos primitivos, algunos llegan incluso a permitir definir nuevos. La elección hecha por los
diseñadores de un LP de los tipos predefinidos está muy relacionada con el área de
aplicación del mismo.

 Tipos primitivos en C#.

Nombre: Descripción

Int. : Números enteros

Double: Números reales

char  : Caracteres

string: Texto

 Operadores aritméticos

Asociados a los tipos de datos numéricos existen una serie de operadores destinados a
realizar las operaciones aritméticas usuales:

 División: / (entera si los dos operandos son enteros)

 Multiplicación: *

 Resto de la división entera:%


 Suma: +
 Resta: -

Operadores lógicos

Los operadores lógicos 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)
AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las
denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de
verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y
tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si llueve O hace
viento, iré al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran
en las tablas siguientes.

El operador lógico AND

x y resultado
true true true
true false false
false true false
false false false

El operador lógico OR

x y resultado
true true true
true false true
false true true
false false false

El operador lógico NOT

x resultado
true false
false true

Los operadores AND y OR combinan expresiones relacionales cuyo resultado viene dado
por la última columna de sus tablas de verdad. Por ejemplo:

               (a<b) && (b<c)

es verdadero (true), si ambas son verdaderas. Si alguna o ambas son falsas el resultado es
falso (false). En cambio, la expresión

               (a<b) ||(b<c)

es verdadera si una de las dos comparaciones lo es. Si ambas, son falsas, el resultado es
falso.

La expresión " NO a es menor que b"

               !(a<b)
es falsa si (a<b) es verdadero, y es verdadera si la comparación es falsa. Por tanto, el
operador NOT actuando sobre (a<b) es equivalente a

               (a>=b)

La expresión "NO a es igual a b"

               !(a==b)

es verdadera si a es distinto de b, y es falsa si a es igual a b. Esta expresión es equivalente a

               (a!=b)
Operadores relacionales

Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el
resultado de la comparación es correcto la expresión considerada es verdadera, en caso
contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa
por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa,
false. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales,
el la segunda, el nombre de dichos operadores, y a continuación su significado mediante un
ejemplo.

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 a!=b a no es igual a b
<= menor que o igual a a<=5 a es menor que o igual a b
>= mayor que o igual a a>=b a es menor que o igual a b

Se debe tener especial cuidado en no confundir el operador asignación con el operador


relacional igual a. Las asignaciones se realizan con el símbolo =, las comparaciones con ==.

Operaciones

En la medida en que avancemos en el curso veremos que no solo existen operadores para
manipular números, y que las operaciones deben entenderse como las acciones que se
realizan sobre los datos para llegar a resultados.

Tipo de datos: Conjunto de valores + Conjunto de operaciones

Las variables y la asignación

Una variable es un contenedor de valores, un recipiente que puede ser inspeccionado


(conocer su contenido) y en el que se pueden depositar datos en cualquier momento. Siendo
consecuentes con el hecho de que los valores pertenecen a tipos (y como una medida de
protección) toda variable  esta ligada a un tipo de datos particular. Cuando programamos
hacemos un uso continuo de variables, de ellas nos auxiliamos para: modelar objetos del
problema que estemos solucionando, manipular resultados intermedios de los algoritmos,
hacer más legible nuestros programas, etc.

Declaración de variables

Para poder usar una variable se debe haber declarado anteriormente, entendiendo declarar
por la manera de expresarle (comunicarle) a la computadora dos características que toda
variable posee: un nombre y el tipo de los valores que estará destinada a almacenar.

La construcción de nombres (identificadores) de variables se ajusta a determinadas reglas


que en última instancia dependen del lenguaje de programación que se este usando, pero en
general, para todos ellos son validas las siguientes:

1. Un identificador se forma con una secuencia de caracteres (minúsculas de la a a la z,


mayúsculas de la A a la Z, dígitos del 0 al 9 y el carácter subrayado o underscore
( )).

2. Un identificador no puede contener espacios en blanco, ni otros caracteres distintos


de los citados, como por ejemplo (#, $, %, *, &, etc.).

3. El primer carácter de un identificador debe ser siempre una letra o un ( ), es decir,


no puede ser un dígito.

4. Se hace distinción entre letras mayúsculas y minúsculas. Así, Masa es considerado


como un identificador distinto de masa y de MASA.

Existen palabras que tienen un significado predefinido en el lenguaje, son las llamadas
palabras reservadas y no pueden ser utilizadas como identificadores. Ejemplos: class,
private, public, void, int, float, char, long, short, break, continue, if, else, for, while, do,
return. Los identificadores deben no solo ser válidos sino que deben autodocumentar su
programa, es decir, tener nombres que permitan conocer a simple vista que representan,
utilizando para ello tantos caracteres como sean necesarios. Esto simplifica enormemente la
tarea de programación y -sobre todo- de corrección y mantenimiento de los programas. Es
cierto que los nombres largos son más laboriosos de teclear, pero en general resulta rentable
tomarse esa pequeña molestia.

Ejemplos de identificadores validos                              Identificadores no validos

SumaTotal                                                                               Suma Total

valor1                                                                                       1_variable

valor_1                                                                                       x+y
Esta_ es_ una_variable                                                             %total

_identificador                                                                               int

Para hacer la declaración se debe escribir el tipo de datos al que pertenecerán los datos que
vamos a manipular con ella, un espacio en blanco, el nombre que le pondremos y luego un
punto y coma (;).

Ejemplos de declaración de variables

int var ;

char otraVar ;

La asignación

Anteriormente se expresaba que las variables eran depósitos de información que podían ser
consultados y cambiados en cualquier momento, las consultas de los valores presentes en
ellas se verán mas adelante, los cambios por su parte se realizan mediante la operación de
asignación.

La asignación consiste en poner un valor en una variable, tiene la forma: variable = valor;

Ejemplo:

int var ;

var = 3 4 ;

Este código trae como consecuencia que se ponga el valor 34 en la variable entera var. La
operación de asignación es la encargada de realizar los cambios de estado en un programa
en ejecución, es adecuado observar que la asignación es destructiva dado que la
información que este presente en una variable es \destruida" (desaparece) cuando se
produce la asignación.

int var ;

var = 3 4 ;

var = 1 2 ;

En este caso primero (línea 2) se asigna 34 a la variable var, pasando en ese momento a
tener el valor 34, cuando luego en la línea 3, se realiza una segunda asignación (del valor
12), entonces el valor 34 desaparece y su lugar es ocupado por el 12.

Expresiones
El proceso de transformación de la información en una computadora ocurre a partir de
acciones que se realizan sobre los datos presentes en el programa, dichas acciones producen
nueva información a partir de la existente y llevan a la solución del problema en cuestión.
Las expresiones son el principal medio de especificar el cómputo en un lenguaje de
programación.

En matemáticas:

f. Mat. Conjunto de números y de símbolos ligados entre sí por los signos de las
operaciones del análisis matemático.

Las expresiones son evaluadas para producir un valor.

Literales

El caso mas simple de expresión es el literal, el cual denota un valor simple de algún tipo
de dato primitivo.

Ejemplos: 690, 'd', 3.14

Los cuales denotan un entero (int), un carácter (char) y un numero real (double)
respectivamente.

Ejemplos de operaciones

Veamos ejemplos de expresiones aritméticas:

6–2

En este caso nos encontramos ante la resta de dos literales cuyo resultado (el valor
producido) es 4.

Escribir algo como lo anterior no tendría mucho sentido pues no se esta usando en nada el
resultado, por lo general el resultado de una expresión se pone en algún lugar:

int var ;

int otraVar ;

var = 6 ¡ 2 ;

otraVar = var + 5 ;

En este caso en la línea 3 se asigna a la variable var. el resultado de la expresión (4), a


continuación se asigna a la variable otra var. el resultado de sumarle 5 a var. (9).
La asignación tiene la forma: variable = expresión;

Estructuras condicioneles (if , else)

En C# contamos con varias de estas estructuras, así que las iremos explicando con calma
una a una, empezando en esta entrega con las estructuras condicionales.

 if significa si condicional, es decir, si te portas bien, te compro un helado y te dejo ver la
tele. Pues bien, en programación, es más o menos lo mismo. Pongamos un poco de pseudo-
código para que los principiantes se vayan haciendo a la idea:

Si (te portas bien)

    te compro un helado;

    te dejo ver la tele;

En programación se evalúa a verdadero o falso la condición, que es lo que está dentro de


los paréntesis (en negrilla en el pseudo-código). Si esta condición se evalúa a true
(verdadero) se ejecutan las líneas del bloque, y si se evalúa a false (falso) no se ejecutan.
Vamos a verlo, ahora sí, en C#:

if (num==10)

    Console.WriteLine("El número es igual a 10");

En este pequeño ejemplo, se evalúa como verdadero o falso lo que está dentro de los
paréntesis, es decir, num==10. Por lo tanto, el operador == retornará true siempre que num
valga 10, y false si vale otra cosa. Por cierto, ya que estamos, no confundas el operador de
comparación == con el de asignación =. En C#: == es de comparación siempre, y = es de
asignación siempre.

También puede ocurrir que tengamos que ejecutar una serie de acciones si se da una
condición y otras acciones en caso de que esa condición no se dé. Pues bien, para eso
tenemos la instrucción else (si no), sería como un "de lo contrario", es decir, si te portas
bien, te compro un helado y te dejo ver la tele; de lo contrario, te castigo en tu cuarto y te
quedas sin cenar.
Ejemplo: 

Si (te portas bien)

    te compro un helado;

    te dejo ver la tele;

de lo contrario

    te castigo en tu cuarto;

    te quedas sin cenar;

En C#:

if (num==10)

    Console.WriteLine("El número es igual a 10");

else

    Console.WriteLine("El número no es igual a 10");

Si se cumple la condición, se ejecuta el código del bloque if, y si no se cumple se ejecuta el


código del bloque else.

También podría suceder que hubiera que enlazar varios if con varios else. Ejemplo: si
compras el libro te regalo el separador, de lo contrario, si compras la pluma te regalo el
cargador, de lo contrario, si compras el cuaderno te regalo un llavero, y, de lo contrario, no
te regalo nada.

Ejemplo: 

Si (compras el libro)

    te regalo el separador;

de lo contrario si (compras la pluma)

    te regalo el cargador;

de lo contrario si (compras el cuaderno)

    te regalo un llavero;

de lo contrario

    no te regalo nada;

O sea, queda claro lo que sucede: si se cumple alguna de las condiciones se producen una
serie de consecuencias, y si no se cumple ninguna de las tres condiciones la consecuencia
es que no hay regalo alguno. En este caso, sin embargo, hay que tomarse el pseudo-código
al pie de la letra para que la relación con la programación sea exacta: ¿qué ocurre si se dan
dos o las tres condiciones? Pues en la vida real, probablemente, te llevarías varios regalos,
pero si lo tomamos al pie de la letra, solamente te podrías llevar el primer regalo en el que
se cumpliese la condición, pues las demás están precedidas por la expresión "de lo
contrario", que es, en sí misma, otra condición, es decir, si se cumple una las demás ya no
se contemplan aunque también se cumplan. Esto es exactamente lo que ocurre en
programación: el compilador no sigue analizando las demás condiciones en el momento en
el que encuentre una que retorna true.

Ejemplo:

 if (num==10)

    Console.WriteLine("El número es igual a 10");

else if (num>5)

    Console.WriteLine("El número es mayor que 5");

else if (num>15)

    Console.WriteLine("El número es mayor que 15");

else

    Console.WriteLine("El número no es 10 ni mayor que 5");

Bien, examinemos las diferentes posibilidades. Si num vale 10, se ejecutará el bloque del
primer if, por lo que la salida en la consola será "El número es igual a 10". Sin embargo, a
pesar de que 10 es también mayor que cinco, no se ejecutará el bloque del primer else if,
pues ni siquiera se llega a comprobar dado que ya se ha cumplido una condición en la
estructura. Si num vale un número mayor que 5, menor que 15 y distinto de 10, o sea, 9, por
ejemplo, se ejecuta el bloque del primer else if saliendo "el número es mayor que 5" en la
consola. Ahora bien: ¿qué sucede si el número es mayor que 15? Pues sucede exactamente
lo mismo, ya que, si es mayor que 15 también es mayor que 5, de modo que se ejecuta el
bloque del primer else if y después se dejan de comprobar el resto de las condiciones. Por
lo tanto, en este ejemplo, el bloque del segundo else if no se ejecutaría en ningún caso. Por
último, el bloque del else se ejecutará siempre que num valga 5 o menos de 5, pues es el
único caso en el que no se cumple ninguna de las condiciones anteriores.

Por otra parte, las condiciones que se evalúen en un if o en un else if no tienen por qué ser
tan sencillas. Recuerda que en C# estas expresiones (las condiciones) han de retornar true o
false necesariamente, por lo que podemos usar y combinar todo aquello que pueda retornar
true o false, como variables de tipo bool, métodos o propiedades que retornen un tipo bool,
condiciones simples o compuestas mediante los operadores lógicos && (AND lógico) ||
(OR lógico) y ! (NOT lógico), o incluso mezclar unas con otras. por ejemplo

if ((Ficheros.Existe(Archivo) || Crear) && EspacioDisco>1000 )

    Console.WriteLine("Los datos se guardarán en el archivo");

else

    Console.WriteLine("El archivo no existe y no se puede crear o bien no hay espacio");

En este ejemplo, "Existe" es un método de la clase Ficheros que retorna true o false,
"Crear" es una variable bool y "EspacioDisco" es una variable de tipo uint. Como ves, en
una sola condición están combinados varios elementos que pueden retornar valores
boolean. Se encierra entre paréntesis la expresión Ficheros.Existe(Archivo) || Crear porque
necesitamos que se evalúe todo esto primero para después comparar con la otra expresión,
ya que el operador && se ejecuta antes que el ||. Así esta expresión retornará true en caso
de que el método Existe devuelva true, la variable crear valga true o sucedan ambas cosas.
Posteriormente se establece el resultado de la otra expresión, es decir EspacioDisco>1000,
y después se comparan los dos resultados con el operador &&, obteniendo el resultado
final, que será true si ambos operandos valen true, y false si alguno de ellos o los dos valen
false. Así, si el archivo existe o bien si se quiere crear en caso de que no exista se guardarán
los datos si, además, hay espacio suficiente, y si, por el contrario, el archivo no existe y no
se quiere crear o bien si no hay espacio, los datos no se guardarán.

 Instrucción switch

Una instrucción switch funciona de un modo muy similar a una construcción con if...else
if... else. Sin embargo, hay un diferencia que es fundamental: mientras en las
construcciones if...else if... else las condiciones pueden ser distintas en cada uno de los if ...
else if, en un switch se evalúa siempre la misma expresión, comprobando todos los posibles
resultados que esta pueda retornar. Un switch equivaldría a comprobar las diferentes
situaciones que se pueden dar con respecto a una misma cosa. Por ejemplo, si te compras
un coche y tienes varias opciones de financiación: En caso de usar la primera opción te
descuento un 10 por ciento, en caso de usar la segunda opción te descuento un cinco por
ciento, en caso de usar la tercera opción te descuento un dos por ciento, y en cualquier otro
caso no te descuento nada. Como ves, se comprueba siempre el valor de un solo elemento,
que en este caso sería la opción.

Ej: 

comprobemos (opcion)

    en caso de 1:

        te descuento un 10%;

        Nada más;

    en caso de 2:

        te descuento un 5%;

        Nada más;

    en caso de 3:

        te descuento un 2%;

        Nada más;

    en otro caso:

        no te descuento nada;

        Nada más;

Bueno, como veis, se comprueba siempre lo que vale "opción"; si vale 1 sucede el primer
caso, si vale 2 el segundo, si vale 3 el tercero, y si vale cualquier otra cosa sucede el último
caso.
Ej: 

switch (opcion)

    case 1:

        descuento=10;

        break;

    case 2:

        descuento=5;

        break;

    case 3:

        descuento=2;

        break;

    default:

        descuento=0;

        break;

 Para terminar, la expresión que se ha de comprobar en un switch ha de ser, necesarimente,


compatible con los tipos sbyte, byte, short, ushort, int, uint, long, ulong, char o string. Al
decir compatible quiero decir que sea de uno de esos tipos o que se pueda convertir a uno
de ellos.

Saltar Navegación

Navegación
 Página Principal
o Área personal
o Páginas del sitio
o Mi perfil
o Mis cursos
 P.O.O C#
 Participantes
 General
 Tema 1
 Tema 2
 Tema 3
 Declaración de variables. Expresiones,
operadores,...
 Cuestionario lección #3
 Ciclos y Arreglos
 Custionario Lección #4
 Métodos. Creación de clases y objetos. Manejo de
l...
 Custionario lección #5
 Relaciones entre clases
 Abstracción, herencia, polimorfismo.
Encapsulamiento
 Cuestionario lección #7
 Implementación de clases en C#
 Implementación de clase en C#
 Tarea #2
 Tarea Integradora
 PB
 VB

Saltar Joven Club de Computación y Electrónica

Joven Club de Computación y Electrónica


Enlace al Sitio de los Joven Club de Computación y Electrónica.

Cursos a distancia. Joven Club de Computación y Electrónica

Usted se ha identificado como Mariela Pavó (Salir)


P.O.O C#

También podría gustarte