0% encontró este documento útil (0 votos)
9 vistas34 páginas

M03 - Programación - Libro A1

El documento introduce conceptos fundamentales de programación, definiendo un programa como un conjunto de instrucciones y un algoritmo como una secuencia de operaciones para resolver problemas. Se describen características esenciales de los programas, herramientas gráficas para representar algoritmos como diagramas de flujo y pseudocódigo, y se discuten lenguajes de programación, destacando C# como un lenguaje de alto nivel. Además, se menciona la importancia de un entorno de desarrollo integrado (IDE) y se proporciona información sobre la instalación de Visual Studio y MonoDevelop.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas34 páginas

M03 - Programación - Libro A1

El documento introduce conceptos fundamentales de programación, definiendo un programa como un conjunto de instrucciones y un algoritmo como una secuencia de operaciones para resolver problemas. Se describen características esenciales de los programas, herramientas gráficas para representar algoritmos como diagramas de flujo y pseudocódigo, y se discuten lenguajes de programación, destacando C# como un lenguaje de alto nivel. Además, se menciona la importancia de un entorno de desarrollo integrado (IDE) y se proporciona información sobre la instalación de Visual Studio y MonoDevelop.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 34

1 INTRODUCCIÓN A LA PROGRAMACIÓN

Programación - A

Un programa es un conjunto de instrucciones dadas al or-


denador en un lenguaje que solo es entendible por él para
comunicarle lo que queremos que haga. Un algoritmo es
una secuencia finita de operaciones que resuelven un de-
terminado problema.

Un algoritmo es más parecido a una idea, una forma de


resolver un problema, mientras que un programa está más
relacionado con la realización de una o más tareas por
parte de un ordenador.

Un programa debe cumplir una serie de características:

• Deber ser finito: formado por un conjunto limitado de


sentencias.
• Debe ser legible: es importante crear códigos limpios y
fáciles de leer con tabulaciones y espacios que diferen-
cien las partes del programa.
• Debe ser modificable: debe ser sencillo el proceso de ac-
tualización o modificación ante nuevas necesidades.
• Debe ser eficiente: debemos crear programas que ocu-
pen poco espacio en memoria y se ejecuten rápidamente.
• Debe ser modulable: debemos realizar algoritmos que se
dividan a su vez en subalgoritmos de forma que se dis-
ponga de un grupo principal desde el que llamaremos al
resto. Así, incitamos a la reutilización de código.
• Debe ser estructurado: engloba a las características an-
teriores, ya que un programa estructurado será fácil de
leer y modificar, y estará compuesto de subprogramas
que permitirán la reutilización de código.

7
Tema 1: Introducción a la programación

Representaciones gráficas

Para representar un algoritmo, podemos utilizar dos


herramientas gráficas: los diagramas de flujo y el pseu-
docódigo.

Un diagrama de flujo es una representación gráfica de un


proceso. Cada paso del proceso se representa con un sím-
bolo diferente que contiene una breve descripción.

Debemos usar una serie de símbolos estándar:

Indican inicio o fin de programa.

Representan una instrucción, un paso a dar o un proceso. Por


ejemplo: cont= cont+1.

Operaciones de entrada/salida de datos. Por ejemplo: visuali-


za en pantalla suma.

Usaremos este símbolo si nos encontramos en un punto en el


que se realizará una u otra acción en función de una decisión.

Por ejemplo, si miVariable= 0, hacemos la instrucción 1. Si no,


hacemos la instrucción 2.

Conector. Permite unir diferentes zonas del diagrama de


forma que se redefine el flujo de ejecución hacia otra parte
del diagrama.

Representa un método o subprograma.

Flechas para indicar la dirección de flujo.

8
Programación - A

Características de los diagramas de flujo:

• Deben escribirse de arriba abajo o de izquierda a derecha.


• Debemos evitar el cruce de líneas, para eso se define la
forma de conector. El uso de conectores debe producirse
cuando no exista otra opción.
• Todas las líneas de flujo deben estar conectadas a algún
objeto.
• El texto que se escribe en las formas debe ser escueto y
legible.
• Todos los símbolos de decisión deben tener más de una
línea de salida, es decir, deben indicar qué camino seguir
en función de la decisión tomada.

EJEMPLO

Se representa el siguiente diagrama de flujo, que


muestra todos los números pares del 0 al 98:

INICIO

i=0

F
i <100

i = i+2

FIN

9
Tema 1: Introducción a la programación

La otra herramienta para representar los algoritmos es el


pseudocódigo.

Es la manera de representar las distintas sentencias que


va a realizar nuestro algoritmo con un lenguaje cercano al
natural. Por tanto, es un lenguaje que no se puede ejecutar
en una máquina.

Características del pseudocódigo

• Comienza con la palabra algoritmo seguido de su nombre.


• A continuación, tenemos la secuencia de instrucciones
de este algoritmo.
• Finaliza con la estructura FinAlgoritmo.
• No es necesaria la indentación (sangrado), aunque es re-
comendable.
• No se diferencia entre mayúsculas ni minúsculas.

Algoritmo triángulo
Definir área, altura, base de tipo números reales;
Escribir “Introduce la altura del triángulo:”;
Leer altura;
Escribir “Introduce la base del triángulo:”;
Leer base;
Área = (altura*base)/2;
Escribir “El área del triángulo es:”, área;
FinAlgoritmo

Comunicación de un sistema informático

En el proceso de programación se comunica a un usuario


con una máquina. Para que se pueda realizar dicha comu-
nicación, debemos tener:

• Los dos agentes principales, usuario y máquina.


• El canal. Para continuar con el ejemplo con el que esta-
mos explicando el proceso de programación, podemos
decir que el canal por el que se comunica nuestro usuario
será el teclado.
• El lenguaje. Tanto el receptor como el emisor hablan un
lenguaje completamente diferente. Para que la comunica-
ción sea fluida, debemos acercar los lenguajes, tanto de la
máquina como del usuario, y así lograr el entendimiento.

10
Programación - A

Ahora bien, para solventar el problema de la comunicación,


tenemos lenguajes de programación de tres tipos: alto
nivel, nivel medio y bajo nivel. Los lenguajes de alto nivel
están más cerca del lenguaje que habla el usuario, mien-
tras que los lenguajes de bajo nivel se acercan más a las
estructuras del lenguaje de la máquina. Por su parte, los
lenguajes de nivel medio toman características de ambos,
como por ejemplo el lenguaje C.

11
Tema 1: Introducción a la programación

Para facilitar el trabajo, implementaremos nuestro código


con lenguajes de alto nivel, de modo que necesitaremos
un proceso de traducción para convertir el programa escri-
to en lenguaje máquina.

Características del lenguaje de alto nivel

• Es totalmente independiente de la máquina y, por tanto,


muy portable.
• Muy utilizado en el mercado laboral informático.
• Tanto las modificaciones como las actualizaciones son
muy fáciles de realizar.
• Para la tarea de traducción de código necesitamos un
compilador y un enlazador con librerías del propio len-
guaje de programación elegido.
Algunos ejemplos de lenguajes de alto nivel son java, php,
c#, VB.NET, Python…

Características del lenguaje de bajo nivel

• Está relacionado con las características del hardware.


• Es fácilmente traducible al lenguaje máquina.
• Es totalmente dependiente de la máquina.
Un ejemplo de lenguaje de bajo nivel es Ensamblador. Este
lenguaje trabaja con registros a más bajo nivel.

12
Programación - A

A lo largo de esta unidad formativa hablaremos de la es-


tructura de un programa informático y de sus elementos
principales, como son las variables, las constantes y los
distintos operadores que podemos usar a la hora de imple-
mentar un código fuente.

Lenguajes compilados e interpretados

Aquellos lenguajes de alto nivel que utilizan un compilador


para poder traducirlo al lenguaje máquina se denominan
lenguajes compilados.

En nuestro caso, un programa escrito en C# necesita un


compilador de C#. En este supuesto, el lenguaje máquina
no corresponde al del ordenador, sino al de una máquina
ficticia llamada máquina virtual. En C#, la máquina virtual
se denomina CLR (Common Language Runtime).

Esta máquina no existe físicamente, sino que es simulada


por un ordenador. Podemos instalarla en nuestro ordena-
dor copiando ese programa en nuestro disco duro.

Gracias a esa máquina, podemos ejecutar nuestro progra-


ma en cualquier ordenador del mundo.

Un lenguaje interpretado no genera un programa escrito


en una máquina virtual. Efectúa directamente la traduc-
ción y ejecución simultáneamente para cada una de las
sentencias.

13
Tema 1: Introducción a la programación

Un intérprete verifica cada línea del programa cuando se


escribe. La ejecución es más lenta debido a esta traducción
simultánea.

En esta asignatura vamos a centrarnos en el lenguaje de


programación C#. Otro lenguaje muy utilizado actualmen-
te es el lenguaje Java. En la siguiente tabla mostramos las
características de ambos:

C# Java

Es un lenguaje orientado a objetos. Es un lenguaje orientado a objetos.

Contiene dos categorías generales de Los argumentos son siempre pasados


tipos de datos integrados: tipos de por valor independientemente del tipo
valor y tipos de referencia. de variable.

La migración de C# a Java es sencilla La migración de Java a C# es sencilla


porque mantiene una sintaxis muy porque mantiene una sintaxis muy
similar. similar.

C# está incluido en la plataforma .NET Gracias al recolector de basura, se


que tiene a su disposición el recolector elimina la necesidad de la liberación
de basura del CLR (Common Language explícita de memoria.
Runtime o entorno en tiempo de
ejecución).

En C# todos los tipos derivan de una Java soporta sincronización de múlti-


superclase común llamada System. ples hilos de ejecución (multithreading)
Object. A diferencia de Java, esta a nivel de lenguaje.
característica también se aplica para los
tipos básicos.

C# es un lenguaje compilado. Java es compilado, en la medida en


que su código fuente se transforma en
un código máquina muy parecido al
lenguaje ensamblador.

Se genera un código intermedio Java es interpretado, ya que ese


llamado MSIL (Microsoft Intermediate código máquina se puede ejecutar
Language) y luego ese código se vuelve directamente sobre cualquier máquina
a compilar para obtener el formato la cual tenga el intérprete y el sistema
nativo en la máquina en la que se va a de ejecución en tiempo real.
ejecutar.

14
Programación - A

ponte a prueba

¿Cómo debe ser un programa informático?


a) Legible.
b) Modificable.
c) Eficiente.
d) Todas las opciones anteriores son correctas.

¿Cuál de las siguientes opciones sobre el


siguiente diagrama de flujo es correcta?

INICIO

“Escribe el valor de N”

i=1
Result = 0

no
i<=N

si

Result = 2*i-1
FIN
i = i+1

“Escribe el valor de result”

a) Muestra los n primeros números impares.


b) Realiza un producto de dos números.
c) Muestra los n primeros múltiplos.
d) Realiza la suma de dos números.

C# tiene dos categorías tipos de datos inte-


grados: por valor y por referencia.
a) Verdadero.
b) Falso.

15
2 ESTRUCTURA DE UN PROGRAMA INFORMÁTICO
Programación - A

El lenguaje de programación C# es un lenguaje de alto nivel


que pertenece al conjunto de lenguajes de .NET. C# es una
evolución de C++ y mucha de la sintaxis está heredada de
este lenguaje.

Con C#, podemos crear aplicaciones con una interfaz de


texto, que denominamos aplicaciones de consola.

Una de las ventajas de aprender este lenguaje es que es


independiente de la plataforma donde lo ejecutemos (sea
Intel o AMD).

Para desarrollar nuestros programas ne C#, utilizaremos


un IDE. Un entorno de desarrollo integrado (IDE) es un
software diseñado para el desarrollo de aplicaciones con
un conjunto de herramientas integradas en una interfaz
gráfica de usuario (GUI).

Sus características son:

• Editor de código fuente: ayuda al programador a es-


cribir el código, resaltando la sintaxis de forma visual y
rellenando de forma automática las distintas opciones
que nos proporciona el lenguaje.
• Depurador: ayuda al programador a localizar sus errores
de código.
• Compilación del código fuente: un código binario en-
tendible por la máquina.

Para plataformas Windows y Mac OSX, podemos desa-


rrollar con IDE Visual Studio. El proyecto que implementa
el desarrollo de .NET en GNU/Linux es el proyecto Mono,
concretamente el entorno de desarrollo MonoDevelop.

Con estos programas, vamos a ir generando los diferentes


proyectos. Cada vez que creemos un proyecto nuevo, el
programa va a generar solo un fichero de código fuente,
que es el que va a dar lugar al ejecutable que necesita la
aplicación.

Este fichero que se genera debe tener la extensión cs, ya


que es la extensión utilizada por los ficheros en C#.

17
Tema 2: Estructura de un programa informático

Instalación de Visual Studio

Para instalar nuestro Visual Studio, vamos a la página oficial


de Microsoft, donde, en la parte de downloads, tendremos
varias opciones.

Así, descargamos Visual Studio Community, que es la


versión gratuita:

BUSCA EN LA WEB

https://visualstudio.microsoft.com/es/downloads/

Una vez descargado, procedemos a la instalación.

Durante la instalación, nos dará a elegir entre una serie de


paquetes instalables.

Nosotros, para realizar nuestras aplicaciones de consola,


añadiremos el siguiente paquete:

18
Programación - A

Instalación de MonoDevelop

Para la instalación de este IDE en plataformas como Ubun-


tu o Debian, podemos seguir las indicaciones de la página
oficial:

BUSCA EN LA WEB

https://www.monodevelop.com/download/

2.1. Bloques de un programa


informático

Estructura de un programa
youtu.be/MTJoNPqXT1E

Podemos definir un programa como una secuencia de ins-


trucciones separadas por un punto y coma que se van a ir
agrupando en diferentes bloques mediante llaves.

Para crear un proyecto, abrimos nuestro Visual Studio y


seleccionamos la opción de Crear un proyecto.

19
Tema 2: Estructura de un programa informático

Posteriormente, elegiremos la opción de Crear un aplicati-


vo de consola.

Nombramos nuestra aplicación con el nombre que quera-


mos y seleccionamos la ruta donde lo guardaremos.

Cuando hayamos configurado estos parámetros, se nos


abrirá la interfaz de nuestro IDE, que estará formado por
tres partes principales:

20
Programación - A

• La primera parte será nuestro editor de código. El desa-


rrollador implementará todas las instrucciones necesarias
para completar su programa.
• La segunda es el explorador de soluciones. En esta parte
de nuestro IDE, veremos los archivos generados de nues-
tro aplicativo.
• La tercera parte es la salida. Nos proporcionará el resulta-
do de si la compilación ha sido correcta o, por el contrario,
si ha habido un error, así como también el porqué de ese
error.

Cuando creamos el proyecto, se crea la siguiente estructura:

using System;
namespace MiAplicación
{
class Program
{
static void Main(string[] args)
{
}
}
}

La estructura que Visual Studio nos crea por defecto es la


clase program. Una clase es una estructura de datos que
está compuesta por atributos o variables (de las que ha-
blaremos más adelante) y métodos o funciones. El método
principal se denomina Main.

21
Tema 2: Estructura de un programa informático

De hecho, siempre que ejecutemos un programa, el primer


método que se ejecutará será el Main. Este método tiene
una serie de argumentos. Estos argumentos son cade-
nas de caracteres que podemos pasar línea de comandos
(CMD):

Nosotros trabajaremos con la Consola de nuestro entorno


de desarrollo.

Entrada y salida por pantalla

Para establecer la comunicación entre el usuario y el pro-


grama, emplearemos la clase Console.

• Para la salida por pantalla, podemos utilizar los métodos


de esta clase, Write y Writeline:
– El método Write() escribe un valor o valores especifica-
do(s) en el flujo de salida estándar, que generalmente
será nuestra pantalla.
– El método WriteLine() escribe un valor o valores
especificado(s) en el flujo de salida estándar, que gene-
ralmente será nuestra pantalla, y se realiza un salto de
línea en nuestra consola.

22
Programación - A

using System;

namespace MiAplicación
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“Hello World!”);
Console.Write(“Programming...”);
}
}
}

La salida será:

Para la entrada de datos de usuario, utilizaremos el méto-


do ReadLine(). Este método leerá el dato introducido por
el usuario y devolverá un dato de tipo cadena (string).

using System;
namespace MiAplicación
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“Introduce un
dato”);
string dato = Console.ReadLine();
}
}
}

Otra forma para recoger los datos de entrada de usuario es


el método Read(). Este método leerá el dato introducido
por el usuario y devolverá un dato de tipo entero (int).

Asimismo, otro método utilizado por la clase Console es


el método ReadKey(). En este caso, se obtiene el carácter
presionado por el usuario y se muestra esta tecla por la
pantalla.

23
Tema 2: Estructura de un programa informático

Se pueden consultar más métodos de esta clase en el sigui-


ente enlace:

BUSCA EN LA WEB

https://docs.microsoft.com/es-es/dotnet/api/system.
console?view=netframework-4.8

ponte a prueba

¿Qué es un IDE?
a) El lenguaje C# es considerado como un IDE.
b) El lenguaje java es considerado como un IDE.
c) Es un software diseñado para el desarrollo de
aplicaciones.
d) Ninguna de las respuestas es correcta.

Siempre que ejecutemos un programa, el


primer método que se ejecutará será el Main.
a) Verdadero.
b) Falso.

¿Qué realiza el siguiente código?


static void Main(string[] args)
{
Console.WriteLine(“Hello World!”);
}

a) Muestra por pantalla args.


b) Muestra por pantalla “Hello World!”.
c) Muestra por pantalla Hello World!
d) Realiza una lectura de datos de args.

24
Programación - A

2.2. Variables. Usos y tipos


Una variable es una estructura de datos que ocupan un es-
pacio en memoria y pueden variar a lo largo de un programa.

Cuando declaramos una variable, establecemos el tipo de


dato (entero, cadena, carácter, etc.) y su identificador.

class Program
{
static void Main(string[] args)
{
int numero;
numero = 10;
char letra = ‘a’;
string cadena = “Esta es una cadena”;
}
}

Tipos de datos en C#:

Tipo simple Descripción

Sbyte, short, int, long Enteros con signo

Byte, unshort, uint, Enteros sin signo


ulong

Float, double Punto flotante

Char Uno o varios caracteres

Decimal Decimal de alta precisión

Bool Booleano

• Tipo String: son cadenas de caracteres. Por ejemplo:


string cadena = “Hola mundo”;
• Tipo de dato enumerado: enum días_semana {lunes,
martes, miercoles};
• Tipos matriz:
– Unidimensionales:
int[] array = new int[5];
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
int[] array3 = { 1, 2, 3, 4, 5, 6 };
– Multidimensionales:
int[,] multiDimensionalArray1 = new int[2, 3];
int[,] multiDimensionalArray2 = { { ‘a’, ‘b’, ‘c’ }, { ‘d’, ‘e’, ‘f’ } };

25
Tema 2: Estructura de un programa informático

Para definir una variable, necesitamos conocer primero el


tipo de datos que va a almacenar y, a continuación, el nombre
que le vamos a asignar. Es recomendable que este nombre
tenga relación con el ejercicio que estemos desarrollando.

Para identificar a una variable, y que tenga un identifica-


dor válido por el compilador, debemos seguir una serie de
normas:

• Debe comenzar por un carácter (letra o “_”).


• Debe estar formada por caracteres del alfabeto (no pode-
mos usar “ñ”) o por dígitos (del 0 al 9). Se puede utilizar
el subrayado (“_”).
• No debe comenzar con un dígito.
• Distingue entre mayúsculas y minúsculas.
• No puede llevar espacios en blanco.
• No se pueden utilizar palabras reservadas. Por ejemplo,
string es una palabra reservada como tipo de dato cadena.
A continuación, encontraréis una lista de las palabras claves
(o identificadores) predefinidos por el compilador:

BUSCA EN LA WEB

https://docs.microsoft.com/es-es/dotnet/csharp/
language-reference/keywords/

Para declarar una variable:

<tipo> <nombre_variable>;

Y en C# lo pondríamos de la siguiente forma:

int num;

En este caso, estamos definiendo una variable de tipo en-


tero denominada num.

A las variables también se les puede asignar un valor:

int num=5;

Definimos una variable de tipo entero, denominada num y


le asignamos el valor de 5.

Debemos utilizar un tipo u otro de variable, dependiendo


del tipo de dato que queremos tratar.

26
Programación - A

A grandes rasgos, podemos dividir las variables en dos


grandes bloques, dependiendo del ámbito en el que se
encuentren:
• Variables locales: aquellas declaradas dentro de un mé-
todo o función.
• Variables globales: aquellas declaradas fuera de un mé-
todo o función. Podemos acceder a ellas desde cualquier
punto del programa.

Más adelante definiremos el concepto de ámbito de va-


riables, cuando hablemos del concepto de programación
modular.

No es buena práctica utilizar variables globales.

AVISO
El problema de las variables globales es que crean depen-
dencias ocultas. Cuando se trata de una aplicación grande,
el programador no conoce los objetos que tiene ni sus
relaciones.

27
Tema 2: Estructura de un programa informático

ponte a prueba

¿Cuál de las siguientes opciones es una


característica de una variable?
a) Ocupa espacio en memoria.
b) P
 uede variar su contenido a lo largo del
programa.
c) Es de un tipo de dato.
d) Todas las respuestas son correctas.

¿Qué tipo de dato es un char?


a) Carácter.
b) Entero.
c) String.
d) Decimal.

Las variables globales son aquellas que están


declaradas dentro de un método o función.
a) Verdadero.
b) Falso.

2.3. Constantes y literales.


Tipos y utilidades
Constantes

En el apartado anterior hemos hablado de las variables


como espacio de memoria donde se almacenan datos que
pueden variar a lo largo del programa. Ahora trabajaremos
con los espacios de memoria cuyo contenido no se puede
alterar a lo largo del programa: las constantes.

El valor se establece en tiempo de compilación y no se


puede cambiar su contenido.

const <tipo> <nombre_variable>;

Por ejemplo:

const int num;

28
Programación - A

Después, declaramos una constante de tipo entero que


denominamos num.

A continuación, exponemos una constante llamada días


semana, con el valor 7, ya que todas las semanas tienen 7
días:

class Calendar1
{
public const int dias_semanas = 7;
}

Las constantes se definen fuera del cuerpo de cualquier


función, normalmente al principio del programa.

• Literales
Mediante un literal podemos representar de forma explí-
cita todos los valores que pueden tomar los tipos básicos
del lenguaje.
Seguidamente, vamos a explicar los diferentes tipos de
literales que podemos encontrarnos en C#.

• Literales enteros:
– Decimales: sin ningún prefijo. Por ejemplo: int dLiteral
= 10;
– Hexadecimales: con el prefijo de 0x o 0X. Por ejemplo:
int hLiteral= 0x3F;

• Literales reales:
– El literal sin sufijo o con el sufijo d o D es del tipo double.
– Por ejemplo: double num = 3.4d;
– Double num2= 3.4;
– El literal con el sufijo f o F es del tipo float.
– Por ejemplo: float variable = 4.5F;
– El literal con el sufijo m o M es del tipo decimal.
– Por ejemplo: decimal numero = 3.2m;

• Literales de lógicos: representados por los valores lógi-


cos true (verdadero) y false (falso).

• Literales de carácter: cualquier carácter en C# podemos


representarlo con comillas simples. Por ejemplo, ‘a’ co-
rrespondería al carácter a.

29
Tema 2: Estructura de un programa informático

Existen caracteres especiales que pueden representarse de


la siguiente forma:

Carácter Representación
ponte a prueba
Comilla simple \’

¿Con qué palabra reservada se Comilla doble \”


define una constante?
a) Const Carácter nulo \0
b) Enum
Retroceso \b
c) Array
d) N
 inguna de las opciones es Salto de página \f
correcta
Nueva línea \n
¿Qué representa el literal \n?
a) U
 na nueva línea Retorno de carro \r
b) Un carácter nulo Tabulación horizontal \t
c) Un salto de página
d) Una tabulación vertical Tabulación vertical \v

2.4. Operadores del lenguaje de


programación

Operadores aritméticos

Operadores aritméticos

+ Suma aritmética de dos valores.

++ Incremento en 1 del operando.

- Resta aritmética de dos valores.

-- Decremento en 1 del operando.

* Multiplicación aritmética de dos valores.

/ División aritmética de dos valores.

% Obtiene el resto de la división entera.

El operador de incremento ++ puede ser aplicado como


prefijo o sufijo de una variable.

30
Programación - A

El resultado de num++ es el valor de num antes de la ope-


ración:

int num = 100;


Console.WriteLine(num); // salida por pantalla: 100
Console.WriteLine(num++); // salida por pantalla: 100
Console.WriteLine(num); // salida por pantalla: 101

El resultado de ++num es el valor de num después de la


operación:

double num = 10.4;


Console.WriteLine(num); // salida por pantalla: 10.4
Console.WriteLine(++num); // salida por pantalla: 11.4
Console.WriteLine(num); // salida por pantalla: 11.4

Asimismo, sucede lo mismo con el operador decremento - -.

La prioridad de los operadores (de mayor a menor prio-


ridad) es:
1. Operadores de incremento x++ y decremento x-- sufijos.
2. Operadores de incremento ++x y decremento --x prefijos.
3. Operadores de multiplicación, división y resta *, / y %.
4. Operadores de suma y resta + y -.

Operadores booleanos

Operadores booleanos

& AND lógico. Evalúa ambos operandos.

&& AND lógico. Evalúa el operando derecho solo


si es necesario.

| OR lógico. Evalúa ambos operandos.

|| OR lógico. Evalúa el operando derecho solo si


es necesario.

^ XOR lógico.

! Negación lógica.

El operador AND lógico & calcula el AND lógico de sus


operandos. El resultado de a & b es true si a y b se evalúan
como true. Si no, el resultado es false.

31
Tema 2: Estructura de un programa informático

El operador AND lógico condicional && también evalúa


el operador AND lógico de sus operandos, pero no evalúa
el operando derecho si el izquierdo se evalúa como false.

El operador | calcula el operador OR lógico de sus


operandos. El resultado de a | b es true si a o b se evalúan
como true. Si no, el resultado es false.

El operador OR lógico condicional || también evalúa el


operador OR lógico de sus operandos, pero no evalúa el
operando derecho si el izquierdo se evalúa como true.

El operador ^ es el operador OR exclusivo o XOR. La tabla


de la verdad (tabla que muestra el resultado de una combi-
nación de valores) es la siguiente:

a b a^b a||b a&&b

T T F T T

T F T T F

F T T T F

F F F F F

El operador ! calcula la negación lógica de su operando, es


decir, si el operando es true, devolverá el valor false. Si el
operando es false, devolverá el valor true.

Operadores de comparación e igualdad

Operadores de comparación

> Mayor

< Menor

>= Mayor o igual

<= Menor o igual

== Igual

!= Desigualdad

= Asignación

El operador < devuelve true si el operando izquierdo es


menor que el derecho.

El operador > devuelve true si el operando izquierdo es


mayor que el derecho.

32
Programación - A

El operador <= devuelve true si el operando izquierdo es


menor o igual que el derecho.

El operador >= devuelve true si el operando izquierdo es


mayor o igual que el derecho.

El operador de igualdad == devuelve true si sus operandos


son iguales.

El operador de desigualdad != devuelve true si sus


operandos son distintos.

ponte a prueba

¿Cuál es el resultado del siguiente código?

int x = 1;
num++;
Console.WriteLine(num);

a) 1.
b) 2.
c) 0.
d) Ninguna de las repuestas es correcta.

¿Cuál de las siguientes opciones sobre el


operador ! es correcta?
a) Calcula la negación lógica de nuestro
operando.
b) Incrementa en 1 nuestro operando.
c) Decrementa en 1 nuestro operando.
d) Compara dos operandos.

33
Tema 2: Estructura de un programa informático

2.5. Conversiones de tipos de


clase
Como hemos visto anteriormente, en C#, cuando declara-
mos una variable, no se puede volver a declarar, ni asignar
un valor de otro tipo.

Por tanto, si tenemos una variable de tipo entero, no pode-


mos asignar un valor de tipo string.

Este fragmento de código daría un error:

int numero=10;
numero = “a”; // No se puede convertir
implícitamente el tipo ‘string’ en ‘int’

Sin embargo, en ocasiones, podemos convertir el valor de


una variable de un tipo de dato a otro tipo. A estas conver-
siones se les denomina conversiones de tipos.

Podemos tener diferentes clases de conversiones:

• Conversiones implícitas: son aquellas que se producen


cuando el valor que se va a almacenar se puede almace-
nar en la variable sin truncarse ni redondearse.
Por ejemplo, una variable de tipo long puede almacenar
datos de hasta 64 bits. Por tanto, puede almacenar cual-
quier dato de tipo int (32 bits).

int a = 300;
long numero=a;

• Conversiones explícitas: cuando no hay posibilidad de


realizar una conversión implícita es cuando debemos
indicar al compilador que se pretende realizar una con-
versión que pueda producir una pérdida de datos. En este
caso, se antepone a la variable el nuevo tipo de datos en-
tre paréntesis.

double num = 100.85;


int b;
b = (int)num;
System.Console.WriteLine(b);

// La salida por pantalla será 100

Parse y TryParse
Con los métodos Parse y TryParse, podemos convertir una
cadena en varios tipos numéricos: int, decimal, double…

El método Parse devuelve el número convertido. El método


TryParse devuelve un valor booleano indicando si la

34
Programación - A

conversión se realizó correctamente o no, y devuelve el


número convertido.

int numValido = Int32.Parse(“-100”);


Console.WriteLine(numValido);

// La salida por pantalla será -100

while (Int32.TryParse(“50”, out int miNumero))


// El argumento miNumero, se pasa por referencia. Lo veremos más
adelante en el apartado 4.5. Llamadas a funciones. Tipos y funcionamento.

Console.WriteLine(miNumero);

// La salida por pantalla será 50

Convert

Es una clase que convierte un tipo de datos en otro. Algu-


nos métodos son:

Método Descripción

ToBoolean Convierte un valor especificado en un valor booleano.

ToChar Convierte un valor especificado en un carácter.

ToDecimal Convierte un valor especificado en un número decimal.

ToDouble Convierte un valor especificado en un número de punto flotante.

ToInt16 Convierte un valor especificado en un entero de 16 bits.

ToInt32 Convierte un valor especificado en un entero de 32 bits.

ToInt64 Convierte un valor especificado en un entero de 64 bits.

ToString Convierte un valor especificado en su representación de cadena.

double numero = 30.5;


string cadena = Convert.ToString(numero);

// Mostraría por pantalla la cadena “30.5”

35
Tema 2: Estructura de un programa informático

EJEMPLO

Ejemplo

Según el siguiente código:

int a=10, b=3, c=1, d, e;

Float x,y;

x=a/b;

c=a<b && c;

d= a + b++;

e= ++a - b;

y= (float)a / b;

// habría un error en la sentencia c=a<b && c; porque


estamos evaluando una condición booleana, mien-
tras que la variable c es una variable de tipo entero.

36
Programación - A

ponte a prueba

Las conversiones implícitas son ¿Qué convierte el método ToString?


aquellas que se producen cuando
a) Un valor especificado en un entero
el valor que se va a almacenar se
de 64 bits.
puede almacenar en la variable sin
pérdida de información. b) U
 n valor especificado en un
carácter.
a) Verdadero.
c) Un valor especificado en un valor
b) Falso. booleano.
d) E
 l valor especificado en su repre-
sentación de cadena.

2.6. Comentarios al código


Hasta ahora nos hemos introducido en la creación por
parte de un programador de código fuente con una fina-
lidad concreta. No debemos pasar por alto que, además
de realizar programas, lo debemos hacer de la forma más
optimizada y ordenada posible.

En el ámbito de la organización entra en escena el concepto


de los comentarios. Es una herramienta disponible en el
compilador para que el programador pueda hacer anota-
ciones en el código sin que sea procesado por el compilador.
Estas anotaciones deben de esclarecer el propio código y
ayudar a entender las sentencias del programa. Así, futuros
programadores podrán conocer su funcionamiento.

En el lenguaje de programación C# está permitido hacer


dos tipos de comentarios:

• Comentarios de una línea: son frases cortas y, por tan-


to, solo pueden ocupar una línea del código. Debemos de
escribir “//” antes de comenzar con dichas anotaciones.
• Comentarios multiline o multilíneas: son comentarios
de varias líneas, que se utilizan para hacer una explicación
mucho más detallada del código en cuestión. También
podemos hacer uso de este tipo de comentarios cuando
deseamos que una parte del código no sea procesada por
el compilador. En este caso, debemos de englobar el tex-
to entre los caracteres “/*” y “*/”.

37
Tema 2: Estructura de un programa informático

El uso de los comentarios es muy útil y, por tanto, se acon-


seja a los programadores que implementen programas con
tantos comentarios como sea posible para documentar el
código.

/*Programa que muestra por


pantalla la frase
Buenas tardes*/

// Está compuesto por la clase Hello1 y el método Main()

public class Hello1


{
public static void Main()
{
System.Console.WriteLine("Buenas tardes");
}
}

ponte a prueba

Según el siguiente código, ¿qué saldrá por


pantalla?

static void Main(string[] args)


{
/* Console.WriteLine (“HOLA MUNDO”);
Int i=10;
Console.WriteLine (i);
*/
}

a) HOLA MUNDO
b) HOLA MUNDO10
c) HOLA MUNDO
10
d) Nada, porque el código está comentado

Para hacer comentarios de una sola línea,


debemos utilizar el operado /.
a) Verdadero
b) Falso

38
Programación - A

39

También podría gustarte