PDF de programación - 2. Tipos e instrucciones básicas

Imágen de pdf 2. Tipos e instrucciones básicas

2. Tipos e instrucciones básicasgráfica de visualizaciones

Publicado el 20 de Junio del 2019
515 visualizaciones desde el 20 de Junio del 2019
553,6 KB
30 paginas
Creado hace 8a (26/10/2015)
2. Tipos e instrucciones básicas

1/59

Nuestro segundo programa en C#

Problema: calcular el área de un triángulo dada su base y su
altura.
Especificación y análisis:

input: base y altura de un triángulo (base, altura ≥ 0)
output: área del triángulo, base ∗ altura/2

2/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM Diseño del algoritmo

Algoritmo (muy sencillo):
• solicitar (por pantalla) al usuario y recoger de teclado los
datos base y altura
• calcular area = base ∗ altura/2
• escribir el resultado area en pantalla

3/59



Codificación del programa

using System;

class AreaTriangulo

{

static void Main ()
{

double baseT, alturaT, areaT;
string baseString, alturaString;

Console.Write ("Base del triángulo: ");
baseString = Console.ReadLine();
baseT = double.Parse(baseString);

Console.Write ("Altura del triángulo: ");
alturaString = Console.ReadLine();
alturaT = double.Parse(alturaString);

areaT = baseT*alturaT/2;

Console.WriteLine ("El área del triángulo es: " + areaT);

}

}

4/59





Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM Funcionará?

Damos al play:

Parece que sí. . .

5/59

Entendiendo el programa



El fragmento principal del programa es el bloque de código de
la función main:

double baseT, alturaT, areaT;
string baseString, alturaString;

Console.Write ("Base del triángulo: ");
baseString = Console.ReadLine();
baseT = double.Parse(baseString);

Console.Write ("Altura del triángulo: ");
alturaString = Console.ReadLine();
alturaT = double.Parse(alturaString);

areaT = baseT*alturaT/2;



Console.WriteLine ("El área del triángulo es: " + areaT);





Veamos paso a paso. . .

6/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM 





Entendiendo el programa

double baseT, alturaT, areaT;

Declara los identificadores baseT, alturaT y areaT como
variables de tipo double

Declarar es informar al compilador de la existencia de un

elemento (entidad) en nuestro programa.

Un identificador es un nombre inventado por el

programador para identificar (nombrar) a un “elemento”
(variable, función, clase, el propio programa. . . ) del
programa

Un tipo es un conjunto de valores (enteros, reales, cadenas

de texto, etc).

El tipo double es el tipo de los reales con doble precisión

en coma flotante. . . es un tipo que opermite almacenar
valores reales (3.45, 7.34927e12, etc)
• Para qué se utilizarán estas variables?

7/59







Entendiendo el programa

string baseString, alturaString;

• Declara los identificadores baseString y alturaString como
variables de tipo string: cadenas de texto.
• Estas variables se utilizarán para almacenar la base y la altura
del triángulo. . . pero como cadenas de texto en vez de números.

. . . pero por qué guardamos esos datos como cadenas de texto
(cuando en realidad queremos tratarlas como valores
numéricos)?
porque a priori el usuario puede introducir como entrada
cualquier secuencia de caracteres cuando se le pida la base o la
altura del triángulo. Leemos como cadena de texto y luego
convertimos al valor oportuno si tiene sentido (si no, error!)

8/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM 









Entendiendo el programa

Las tres instrucciones siguientes:

Console.Write ("Base del triángulo: ");

Escribe en pantalla Base del triángulo:








baseString = Console.ReadLine();

Lee de teclado una cadena de texto y la guarda en la variable
baseString (asignación de un valor a una variable)

baseT = double.Parse(baseString);

Parsea (analiza) esa cadena de texto, comprueba que
efectivamente representa un número (double) y guarda el valor
en la variable baseT (otra vez, asignación)

9/59

Entendiendo el programa




Console.Write ("Altura del triángulo: ");
alturaString = Console.ReadLine();
alturaT = double.Parse(alturaString);

Análogo al código anterior.
• En este momento tendremos en memoria dos variables baseT
y alturaT con dos números correspondientes a la base y la
altura del triángulo proporcionado por el usuario.

Ahora podemos hacer las cuentas. . .

10/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM Entendiendo el programa




areaT = baseT*alturaT/2;

Esta instrucción

calcula el área del triángulo (utilizando la fórmula

conocida)

y almacena el valor resultante en la variable areaT

• Como las variables baseT y alturaT se han declarado de tipo
double, tiene sentido hacer esta operación con ellas. Y tiene
sentido guardar el resultado en areaT (también de tipo double)

11/59

Entendiendo el programa




Console.WriteLine ("El área del triángulo es: " + areaT);







En primer lugar se calcula un valor:

El resultado de concatenar la cadena de texto (string) "El

área del triángulo es:

"

con. . . el resultado de convertir el valor areaT de tipo

double a cadena de texto (string).
Por ejemplo, el número 45,27 se convierte en la cadena "45,27"
En este caso la conversión de tipo (casting) es implícita.

Es decir, se concatenan dos cadenas de texto y la cadena
resultante se escribe en pantalla.

12/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM Entendiendo el programa

Algunas cosas más, para ir aprendiendo:

Las sentencias o instrucciones se separan con ;
Los bloques de código se encierran entre { y }
Toda variable tiene que haber sido declarada antes de ser

utilizada (si no, error)

Una variable puede almacenar valores del tipo con el que se

ha declarado. Si se intenta guardar un valor de otro tipo,
error

13/59

Entendiendo el programa

• Al declarar una variable de un tipo, C# reserva una zona de
memoria del tamaño adecuado para guardar valores de ese tipo.

(simplificando) C# tiene tipos para almacenar valores

booleanos (bool: true o false), numéricos enteros y reales,
caracteres simples (char) y cadenas de caracteres (string).
• Internamente asocia esa variable con la dirección de memoria
de esa zona reservada.

El compilador traduce los nombres de variable a direcciones

concretas de memoria.

Pero de cara al programador (nosotros) se puede asociar

nombre de variable con zona de memoria

Accedemos a los datos en memoria a través de variables.
• Informalmente: la ejecución de un programa en definitiva está jugando
(mediante un algoritmo) con los valores almacenados en memoria para

obtener un resultado: uno o varios valores almacenados en memoria (en

determinadas variables/direcciones).

14/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM Entendiendo el programa

• Ya hemos visto la primera instrucción elemental: la asignación

variable = expresión;

expresión debe ser una expresión válida del mismo tipo que el
declarado para variable

El efecto de la asignación es:

evaluar el valor de expresión
almacenar ese valor en memoria, en la zona reservada para

variable, destruyendo el valor previo que hubiese en esa
zona de memoria.

Por eso a veces se habla de asignación destructiva el valor
destruido es irrecuperable (no hay vuelta atrás).

15/59

Entendiendo el programa. La memoria

Qué efecto tiene cada asignación del programa?

16/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM 





Y el resto de código en el programa? El envoltorio




using System;

• Indica al compilador que utilizaremos nombres del espacio de
nombres System.

using es una palabra reservada: no podemos utilizarla

como nombre de identificador en nuestro programa.

Un espacio de nombres es un contexto donde tienen sentido

algunos nombres concretos (y son únicos).

• El espacio de nombres System contiene la clase Console, que
tiene métodos para escribir en pantalla (Write, WriteLine) y
leer de teclado (ReadLine).
• Sirve para abreviar códido: si no incluimos esta línea
tendíamos que escribir
System.Console.Write (... y System.Console.Read (...

17/59




Entendiendo el programa

class AreaTriangulo

• Declara la clase AreaTriangulo.

Una clase es una plantilla para agrupar datos (atributos) y
código de programa (métodos) con un propósito específico.
En nuestro caso esta clase define un único método Main que

realizará todo el trabajo para resolver nuestro problema.

• En C# (y en cualquier lenguaje orientado a objetos):

Los programas se estructuran en clases.
Cada clase tiene un identificador (un nombre), que por

convención debe coincidir con el nombre del archivo que la
contiene (la clase AreaTriangulo se almacenaría en el archivo
AreaTriangulo.cs).

Por ahora, definimos una única clase y no profundizaremos en
clases, objetos, herencia, polimorfismo. . .

18/59

Jaime Sánchez. Sistemas Informáticos y Computación, UCMJaime Sánchez. Sistemas Informáticos y Computación, UCM 





Entendiendo el programa

static void Main ()

• void Main (): prototipo del método (función) principal del
programa:

() indica que Main no lleva parámetros de entrada (input),

i.e., es una función sin argumentos.

Por ejemplo, la función matemática sin (seno) necesita un

argumento, la suma dos argumentos. . . pero π entendida
como función es una función constante, sin argumentos.

void indica que el método Main no devuelve nada (hace un

trabajo y termina sin devolver nada).

En general, los métodos devolverán valores de salida

(out
  • Links de descarga
http://lwp-l.com/pdf16155

Comentarios de: 2. Tipos e instrucciones básicas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad