Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ventajas Ventajas
Es un lenguaje potente y eficaz Es la versión JAVA de Microsoft
Desventajas Desventajas
Microsoft C++ no es compatible 100% con ANSI
Su primer compilador se realizó antes de que fuese Se le considera un lenguaje antiguo
fijado el estándar ANSI Va a ser sustituido por el J# (Java para .NET)
ANSI C++ no contempla conceptos modernos como Objetivo
Unicode o XML.
Microsoft tenía como objetivo que su C++ fuese un Convencer a los programadores JAVA que se
lenguaje de alto rendimiento en windows, con lo que pasen a .NET
ha añadido muchas palabras reservadas.
Resultado . Microsoft C++ es algo “liosillo”.
C# Ventajas
◦ Lenguaje diseñado específicamente para .NET ◦ Integrado con modernas herramientas de desarrollo
◦ Diseñado desde cero sin ningún condicionamiento ◦ Fácil de integrar con Visual Basic
◦ Microsoft lo describe como ◦ Tiene el alto rendimiento (casi) y permite el acceso a
Sencillo memoria de bajo nivel de C++
Moderno
Orientado a objetos
Seguro en cuanto a tipos
Derivado de C y C++ (y a JAVA aunque Microsoft no lo
diga)
con C#
Fijar
aplicación de ¿using?
Fijar consola
lenguaje del
proyecto
¿namespace?
Fijar nombre
de proyecto ¿Main dentro de una clase?
¿Main o main?
using System;
Comentarios de varias líneas
… /* Encontrar la mayor raíz
Console.WriteLine("Hola, mundo"); de la ecuación cuadrática */
x = (…);
/// Comentarios que permiten generar
documentación automática del proyecto.
namespace ConsoleApplication11
Aspectos
3
{
/// <summary>
/// La clase 1 permite mostrar mensajes
/// </summary>
básicos del
class Class1 lenguaje
{
/// <summary>
/// Punto de entrada principal de la
aplicación.
/// </summary>
Explícitamente
34.5F (float)
34.5M (decimal)
Tipo
El CTS admite tanto tipos de valor
char Char Carácter Unicode como de referencia
de 16 bits
Tipo de valor Tipo de referencia
Console.WriteLine(colorPantalon); Visualización
}
Predefinido string objeto
amarillo
Del usuario
Mi primera\ncadena
static void Main(string[] args){
string cadena= "Mi primera cadena";
Console.WriteLine(cadena);
}
Expresiones y
string cadena = "\"Hola\"";
“Hola”
3.2 Operadores
string cadena = “Hola “ + 2;
Hola 2
Operadores
• Incremento / decremento ++ -- Escribir un programa en C# que lea dos
• Aritméticos * / % + - números por teclado.
• Relacionales < > <= >=
• Igualdad == !=
• Lógicos && || !
• Asignación = *= /= %= += -=
Variables y
Definición de variables 3.3 Constantes
Salida por pantalla
una declaración:
int objetoCuenta, empleadoNúmero;
◦ --o--
int objetoCuenta, !!!! El compilador C# exige que cualquier variable esté inicializada
empleadoNúmero; antes de ser usada
C# es mucho más seguro que Reglas
◦ Usa letras, el signo de subrayado y dígitos
◦ C++ Deja al programador la tarea de garantizar que
Recomendaciones
usa variables inicializadas. (Los compiladores ◦ Evita poner todas las letras en mayúsculas
modernos emiten mensajes de aviso pero permiten ◦ Evita empezar con un signo de subrayado
generar el ejecutable. ◦ Evita el uso de abreviaturas
◦ VB inicializa a 0 por defecto las variables. ◦ Use PascalCasing para nombres con varias palabras
int x = 2;
long l = 234;
int x = 2;
double dob = 45.67;
long l = 234;
double dob = 45.67;
x = l;
l = dob;
dob = x;
l = x;
Explicita. Correcta utilizando casting ¿Es correcto el siguiente programa?
Estructuras de
3.6 control
Conversión de datos
if
Condicional
◦ if/else if (saldo > reintegro) if else
Console.WriteLine("OK"); if (saldo > reintegro)
◦ switch/case
Console.WriteLine("OK");
Repetición else
◦ while if else if Console.WriteLine("No OK");
◦ do/while
◦ for if (saldo > reintegro)
Console.WriteLine("OK");
◦ foreach else if (saldo < reintegro)
Cambio de secuencia Console.WriteLine("No OK");
else
◦ return
Console.WriteLine("a 0");
◦ break
◦ continue
¿Cómo funcionará?.
switch (saldo)
if (saldo = reintegro) {
Console.WriteLine(“a 0"); case 1 : saldo *= 2;
else if (saldo < reintegro) break;
Console.WriteLine("No OK"); case 2 : saldo *= 3;
else break;
Console.WriteLine(“OK"); default : saldo = 0;
break;
}
SOLUCIÓN
if (saldo == reintegro)
Console.WriteLine(“a 0");
else if (saldo < reintegro)
Console.WriteLine("No OK"); BREAK. Casi obligatorio.
else
Console.WriteLine(“OK")
switch (saldo) { switch (saldo) {
case 1 : saldo *= 2; case 1 :
Error Correcto
case 2 : saldo *= 3; case 2 : saldo *= 3;
break; break;
SOLUCIÓN
default : saldo = 0; default : saldo = 0;
switch (saldo) {
break; break;
case 1 : saldo *= 2;
} goto case 2; }
case 2 : saldo *= 3;
break;
default : saldo = 0;
break;
for
Permite utilizar etiquetas tipo string
for (i = 0; i <= 10 ; i++) while
suma+= i; while ( i <= 10)
{
string nombre= "Pedro";
suma+= i;
switch (nombre)
i++;
{ do }
case "Pedro" : Console.WriteLine("Hola Pedro");
break; i = 0;
case "Juan" : Console.WriteLine("Hola Juan"); do
break; {
} suma += i;
i++;
}
while (i < 10);
foreach Return devuelve el control a la rutina llamante
a la actual
int [ ] mivector = {1,2,3}; int valor, suma;
foreach(int algo in mivector) Console.Write("Introduce un número : ");
Console.Write (algo); valor = int.Parse(Console.ReadLine());
suma = 0;
while (valor <= 10)
{
if (valor == 3)
Permite recorrer todos los elementos de un contenedor return;
suma += valor;
Es necesario definir una variable del tipo de los elementos del valor++;
contendor }