martes, 6 de mayo de 2008

ACCESO A DATOS Y METODOS

Despues de que se a creado un objeto, se puede acceder a sus datos y metodos utilizando la anotacion siguiente:

nombreObjeto.datos //Referencia a un dato del objeto//
nombre.Objeto.Metodo() //Referencia a un método del objeto//

Ejemplo:

miCirculo.radio //RadiodemiCirculo//
miCirculo.CalcularSuperficie() //Devuelvelasuperficie de miCirculo//

UTILIZACION DE UN METODO

Los metodos son los miembros de un tipo clase donde se especifican las acciones que se realizan por un objeto de la misma clase.

Una invocaccion a un metodo es una peticion al metodo para que se ejecute su accion y lo hagan con el objeto mensionado.

La invocacion de un metodo se denomina tambien llamar a un metodo y pasar un mensaje a un objeto.

Existen dos tipos de metodos:
1. Los que devuelven un valor unico (elmetodo ReadLine devuelve un unico valor e tipo string).
2. Los que ejecutan alguna accion distinta de devolver un unico valor que se denominan metodos void. Los metodos WriteLine realizan una accion distinta de devolver un valor unico.

LLAMADA O INVOCACION DE UN METODO

Se puede realizar de 2 formas, dependiendo de que el metodo devuelva o no un valor.

1.

Si el metodo devuelve un valor, la llamada al metodo se trata normalmente como un valor, por ejemplo:

int mayo=math.max(3,4); //llama al metodo max(3,4) y asigna el resultado del metodo a la variable mayor//

Otro ejemplo puede ser la llamada

System.Console:WriteLine(Math.Max(3,4)); //que imprime el valor devuelto por la llamada al metodo max(3,4)//

2.

Si el metodo devuelve void, una llamada al metodo debe ser una sentencia. Por ejemplo el metodo WriteLine() devuelve void. La siguiente llamada es una sentencia.

System.Console.WriteLine("Sierra Tarahumara");

Si se considera ahora un objeto, miCuenta de la clase CuentaCorriente, una invocacion al metodo depositar tendra el formato:

miCuenta.Depositar(2400);

lunes, 5 de mayo de 2008

SOBRECARGA DE METODOS

En una misma clase pueden definirse varios metodos con el mismo nombre, siempre y cuando tomen diferente numero o tipo de parametros.

Es posible ya que cuando se le llame al compilador sabra a cual llamar a partir de los parametros pasados en la llamada.

No se pueden permitir varios metodos que solo se diferencien en su valor de retorno, ya que como este nose debe indicar al llamarlos, no podria diferenciarse a que metodo en concreto se hace referencia en cada llamada.

Ejemplo:
Apartir de la llamada p.cumpleaños ();
Si ademas de la versiondel cumpleaños se abre y cierra parentesis que no retorna nada ubiese otra que retornara un int, coma sabria entonces el compilador a cual llamar

void Cumpleaños ()
{
Edad ++;
}
void Cumpleaños (int cantidad)
{
Edad=Edad-cantidad;
}
void Cumpleaños (float cant1)
{
Edad=Edad+cant1;
}
void Cumpleaños (int cantidad, int resta)
{
Edad=Edad-(cantidad-resta);
}


Persona Andres=newPersona();//estamos creando un objeto//
Andres.Cumpleaños();
Persona Vicky=newPersona();
Vicky.Cumpleaños(10);
Persona Luis=newPersona();
Luis.Cumpleaños(2.0);
Persona.Rosa=newPersona();
Rosa.Cumpleaños(2,10);


SINTAXIS PARA DECLARAR UN OBJETO

Una vez que se define una clase, el nombre de la clase se convierte en un nuevo tipo de dato y se utiliza tanto como para declarar variables de ese tipo, como para crear objetos del mismo

sintaxis:

nombreClase nombreObjeto;

Ejemplo:

circulo miCirculo;

DECLARACION Y CREACION DE UN OBJETO

La declaracion de un objeto, simplemente asocia el objeto con una clase, asiendo el objeto una instancia o copia de esa clase. Hay que tomar en cuenta que la declaración no crea el objeto.

Para crear realmente miCirculo se necesita utilizar el operador new con el objeto para indicarle a la computadora que cree un objeto miCirculo y asigne espacio de memoria para el.

SINTAXIS PARA CREAR UN OBJETO:

nomObjeto=new nombreClase();

Ejemplo:

miCirculo=new Circulo ();

Se pueden convinar la declaracion y la creacion, o instanciacion en una sola sentencia.

Sintaxis:

nombreClase nombreObjeto=new nombreClase();

Ejemplo:

Circulo miCirculo=newCirculo();

lunes, 28 de abril de 2008

CLASE

Programacion orientada a objetos

Forma de organizacion del conocimiento en que las entidades centrales son los objetos.
Los objetos representan formas fisicas o abstractas pero tienen un estado y un comportamiento.

La programacion orientada a objetos utiliza los objetos como bloques de construccion logicos, cada objeto es una instancia o copia de una clase y las clases se relacionan unas con otras por medio de relaciones de herencia.

Objeto: en él se une una serie de datos con las rutinas necesarias para manipularlos (miembros de la clase).

Clase: estructura o plantilla que sirve para definir un objeto, habitualmente contiene una coleccion de metodos y definiciones de datos. Tiene un nombre y especifica los miembros que pertencen a la clase. Una veez que se define una clase, el nombre de la clase se convierte en un nuevo tipo de dato.

Consata de metodos y datos que resumen caracteristicas comúnes de los objetos de tal manera que es la declaracion de la forma que tendran los objetos fabricados de esa clase. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase.

SINTAXIS:

class
{
miembros
}

ejemplo:
class Circulo
{
public double radio=5.0; //declara la variable//caracteristica del objeto//
public double CalcularSuperficie()//como se va a comportar el objeto//
{
return radio*radio*3.141592;
}
}

public //se usa en todo el programa//
double//para que sean decimales y una cantidad grande//

Dentro de una clase existen campos, un campo es un dato o propiedad comun a todos los objetos de una determinada clase.

SINTAXIX:
tipoCampo nombreCampo;

cualquier identificador que siga las reglas pra la escritura para identificadores y no coinsida con el nombre de ningun ptro miembro previamente definido en la clase. Permiten el almacenamimento de datos, por lo que se les denomina tambien variables.

Tipo de Campo: Debemos de indicar cual es el tipo de dato del objeto, que vamos a crear. Este tipo puede corresponder con cualquiera de los predefinidos o con cualquier otro que nosoros hayamos definido.

Ejemplo:

class Persona
{
string nombre; //almacena el nombre//
int edad; //almacena edad//
string RFC; //almacena RFC//
}

Todos los objetos de clase persona incorporaran campos y almacenaran cual es el nombre de la persona que cad objeto representa, cual es su edad y cual es su RFC.

Para acceder a un campo de un determinado objeto se usa la SINTAXIS:

objeto.campo;

Ejemplo:
Para acceder al campo edad de un objeto persona llamado P y cambiar su valos por 20 seria:

p.Edad=20

lunes, 21 de abril de 2008

CICLO DO WHILE

CICLO DE WHILE

El cuerpo de funciones se ejecuta mientras una condición permanezca
verdadera

En el momento en el que la condición se convierte en falsa, la
función se termina

inicializa variable condición;
while (condición)

do{
GRUPO DE INSTRUCCIONES,
INSTRUCCIONES PARA SALIR DEL CICLO;
}
;

CICLO DO-WHILE

Su diferencia básica con el ciclo While es que la prueba de condición esta hecha al finalizar el ciclo, por consecuencia las instrucciones se ejecutan cuando menos una vez por que primero ejecuta las instrucciones y luego evelua la condicion, si la condicione es verdadera vuelve a ejecutar el ciclo.

inicializa variable condición;
do{
Grupo de instrucciones;
para terminar el ciclo;
} WHILE (CONDICIÓN);


Ejercicio:

int si;
int x = ("menu");
("Ingrese la palabra si para continuar")
si;
continua el ciclo;
menu << break;
}

while ("menu" = si); //mientras ocurra (menu = si);
return ; end

}

PRACTICA 1 CICLO DO/WHILE:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char x;
do{
float resultado;
Console.WriteLine("Dame un Numero");
float b = float.Parse (Console.ReadLine());
Console.WriteLine("Dame otro numero");
float h = float.Parse (Console.ReadLine());
Console.WriteLine("menu");
Console.WriteLine("a.suma");
Console.WriteLine ("b.resta");
Console.WriteLine("c.multiplicacion");
Console.WriteLine("d.division");

char a = char.Parse(Console.ReadLine());
switch (a)
{
case 'a': resultado = b + h;
Console.WriteLine("el resultado es" + resultado);
break;
case 'b': resultado = b - h;
Console.WriteLine("el resultado es" + resultado);
break;
case 'c': resultado = b * h;
Console.WriteLine("el resultado es" + resultado);
break;
case 'd': resultado = b / h;
Console.WriteLine("elresultado es" + resultado);
break;
default:
Console.WriteLine("error");
break;
}
Console.WriteLine("Pon S si desea repetir o N si no");
x = char.Parse(Console.ReadLine());
} while(x == 's');
}
}


}

miércoles, 9 de abril de 2008

C# PRACTICAS

Practica 1 Frutas

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{ Console.WriteLine(”Menu”);
Console.WriteLine(”a. Platano”);
Console.WriteLine(”b. Uva”);
Console.WriteLine(”c. Fresa”);
Console.WriteLine(”d. Manzana”);
Console.WriteLine(”e. Kiwi”);
char a = char.Parse(Console.ReadLine());
switch (a)
{
case ‘a’:
Console.WriteLine(”El platano es amarillo”);
break;
case ‘b’:
Console.WriteLine(”La uva es chiquita”);
break;
case ‘c’:
Console.WriteLine(”Sabe rica”);
break;
case ‘d’:
Console.WriteLine(”Esta deliciosa”);
break;
case ‘e’:
Console.WriteLine(”Es verde”);
break;

}
string h = Console.ReadLine();

}

}
}


Practica 2 Factorial

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace nelly_factorial
{
class Program
{
static void Main(string[] args)
{
int a = 0, i, b = 1, c = 0;
Console.WriteLine("Dame un numero");
int n = int.Parse(Console.ReadLine());
for (i = n; n > 1; i--)
{
a = n * (n - 1);
c = b;
b = c * a;
n = n - 2;
}
Console.WriteLine("El numero factorial es:" + b);
string x = Console.ReadLine();
}
}
}

Practica 3 numero primos

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int c;
Console.WriteLine(”dame un numero”);
int a = int.Parse(Console.ReadLine());
c = a % 2;
if (a == 2){
Console.WriteLine(”Es Primo”);
}else if(c==0)
{Console.WriteLine(”No es Primo”);}
else
{Console.WriteLine(”Es Primo”);

}
string x= Console.ReadLine();

}
}
}

Practica 4 Fibonacci

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace nelly_fibonacci
{
class Program
{
static void Main(string[] args)
{
int a= 1, b= 1, i, c;
for (i = 0; i <=7; i++)
c = a + b;
b = a;
a = c;
Console.WriteLine( c );
string x =Console.ReadLine();
{
}
}
}
}

martes, 11 de marzo de 2008

PRACTICAS "PROGRAMAS

{
static void Main(string[] args)
{
int i;
for(i=0; i<10; i++) //es para iniciar un ciclo en donde i es cero (iniciaciòn) i es menor de 10 (condicion) y va en aumento//
{Console.WriteLine("Hola Mundo"); //PAra escribir hola mundo//
}
string a = Console.ReadLine(); //es para que el programa se spere y deje verlo y se cierre con un enter//
}
}


result a+b

console.writeline("el resultado es" + result); //para que aparesca el resultado de a+b en la pantalla//


Ejercicio 1:
2 nùmeros a y b
suma y resultado


using System;
using System.Collections.Generic;
using System.Text;

namespace MONICA
{
class Program
{
static void Main(string[] args)
{
int resultado;
Console.WriteLine("Dame un numero");
int a=int.Parse(Console.ReadLine());
Console.WriteLine("Dame otro Numero");
int b=int.Parse(Console.ReadLine());
resultado = a + b;
Console.WriteLine("El resultado es:"+resultado);
Console.ReadLine();

string a = Console.ReadLine();
}
}
}






Ejercico 2:

Pedir al usuario edad
Si(if):
edad>=18 Bienvenido
edad<18 Acceso denegado


using System;
using System.Collections.Generic;
using System.Text;

namespace MONICA
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Dame tu edad");
int edad = int.Parse(Console.ReadLine());
if(edad>=18)
{Console.WriteLine("Bienvenido");}
else
{Console.WriteLine("Acceso denegado");}
Console.ReadLine();
}
}
}
if(edad>=18)
{Console.WriteLine("Bienvenido");}// es la condicion de que si es mayor a 18, y despues se pone lo que debe de pasar si se cumple la condiciòn.
else
{Console.WriteLine("Acceso denegado");}//es lo que debe hacer "sino" se cumple la condicion.
int edad = int.Parse(Console.ReadLine());//te dice que


Ejercicio 3:

100 veces anumerando cada frase


{
static void Main(string[] args)
{
int i;
for(i=1; i<100; i++)

{Console.WriteLine(i+"moni"); }
string a = Console.ReadLine();
}
}


Console.WriteLine(i+"moni");//con el i hace que ya cada que se escriba moni se ponga a lado el numero que corresponda del 1 al 100//



Ejercicio 4:
Menu de Numeros

lunes, 10 de marzo de 2008

METODOS PARA LEER DATOS

Existen dos metodos para leer datos, el primero sirve para leer solo un caracter y el segundo lee una cadena completa de caracteres.
variable=Console.Read( );
cadena=Console.ReadLine( );

Para guardar un dato dentro de una variable se ocupa la siguiente sintaxis:
tipo variable = tipo.parse(Console.ReadLine());

tipo puede ser: int, char, double
variable: nombre que se le va a dar y depende de las caracteristicas de los identificadores
Parse: palabra reservada que ayuda a transformar la entrada de texto a una estructura de datos (parseo).
El de parentesis: si se quiere un caracter o una cadena de ellos.

ej: int num 1 = int Parse(Console.ReadLine());

ESTRUCTURAS DE CONTROL

Evaluan una o mas alternativasy pueden ser bidireccional o multidireccional.
Instruccion if(bidireccional): Instruccion condicional mas usada en los diversos lenguajes de programación. Su sintaxis es:
if(condicional)
{
grupo cierto de instrucciones;
}
else
{
grupo falso de instrucciones;
};(ese punto y coma es opcional)


Instruccion switch(multidireccional)

Existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos se usa una condicion compuesta muy grande. o se debe intentar convertir el problema a uno que se pueda resolver utilizando la instruccion switch.

Esta instruccion es de decision multiple donde el compliador prueba o busca el valor contenido en una variable entera o un caracter de constantes apropiadas, cuando la computadora encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociado a dicha constante. Si no encuentra el valor de igualdad entonces ejecuta un grupo de instrucciones asociados a un default aunque este ultimo es opcional.

Cuando son letras se ponen comillas simples "a" si son numeros basta con poner el numero 1.

Switch (variable)
{
case 1
a+b
break;
case "b"
a-b
break;

case default
ERROR

Para que dos casos sean iguales o sigan el mismo patron es:
case 1
case 2
instrucciones
break;

Ejercicio 1:

- Pedir dos numeros enteros
- Hacer un meu que contenga:
1. suma
2. resta
3. multiplicacion
4. division
-de operacion a realizar

Console.WriteLine("Dame un numero")
int num 1= int. Parse (Console.ReadLine);

VARIABLES, CICLOS Y CONDICIONALES

A) Declaraciones de variables:

La declaración de una variable es una sentencia simple con la siguiente sintáxis:

tipoVariable nombreVariable;

De esta forma declaramos que la variable nombreVariable es de tipo tipoVariable. El siguiente ejemplo declara una variable de tipo int (entero):

int contador;

También es posible dar un valor inicial a la variable declarada:

int contador = 2;

esta sentencia declara la variable contador y le da un valor inicial de 3.

A veces en necesario declarar varias variables de un mismo tipo. Existe una forma abreviada de declaración de variables que permite hacer esto en una sola sentencia:

int x,y,z;

El anterior ejemplo declara tres variables (x, y, z), todas de tipo entero (int). Usando esta forma abreviada también es posible dar un valor inicial a las variables:

int x=0,y=1,z=23;

B)Tipos de Variables

*
De tipo entero:

Son variables que almacenan números enteros. Se pueden dividir en los siguientes tipos:



*
De tipo real o de coma flotante:

Son variables que almacenan datos numéricos con decimales. Se pueden dividir en los siguientes tipos:


*
De tipo lógico o booleanas:

Son variables que almacenan dos posibles valores: true o false. No se corresponden con ningún valor numérico.

Ejemplo:

boolean tienesCalor=true;

*
De tipo char o de carácter:

Son variables que almacenan caracteres individuales (letra, numero, signo ?, etc...). El carácter que se inicializa debe ir entre apóstrofes o comillas simples 'a'.

El código de caracteres empleado por Java es Unicode y recoge los caracteres de prácticamente todos los idiomas importantes del mundo (son unos 65.536). Los caracteres Unicode del alfabeto occidental corresponden a los primeros 256 enteros; es decir van desde [0, 255].

A cada carácter le corresponde unívocamente un número entero perteneciente al intervalo [0, 65536] o a [0, 255] si se trabaja sólo con el alfabeto occidental. Por ejemplo, la letra ñ es el entero 164. Más adelante se verá que el casting entre variables primitivas enteras y la variable char está permitido.

Ejemplo:

char miCaracter='n';

char miCaracter1=110; (ídem antes, pero mediante el entero que le corresponde según Unicode)

char miCaracter2='\u006E'; (ídem antes, pero según notación Unicode. La notación Unicode, en general, es así: \uXXXX siendo X un dígito o cifra fundamental del sistema de numeración hexadecimal (0,1,2,...,9,A,B,...,F))

Asociado a este tipo de variable se tienen las secuencias de escape. Se emplean para representar caracteres especiales (por ejemplo, unas comillas dentro de una instrucción que exige una cadena entrecomillada) y caracteres no imprimibles como el tabulador, salto de línea, etc. Van precedidos de la contrabarra. Algunos de ellos se detallan en la tabla siguiente:




C) Ciclo

C# NET CICLO FOR
Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.
En C SHARP NET este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
for (inicialización; condición; incremento)
{ instrucción(es); };
En su forma simple la inicialización es una instrucción de asignación que carga una variable de control de ciclo con un valor inicial.

CICLO WHILE C# NET

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.

Su formato general es :

cargar o inicializar variable de condición;

while(condición)

{

grupo cierto de instrucciones;

instrucción(es) para salir del ciclo;

};

prog14.aspx:


La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.
El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;)
El preprocesador no interpreta de ninguna manera el código fuente del fichero, sino que sólo interpreta de dicho fichero lo que se denominan directivas de preprocesado. Estas directivas son líneas de texto del fichero fuente que se caracterizan porque en ellas el primer carácter no blanco que aparece es una almohadilla (carácter #) Por ejemplo:

#define TEST
#error Ha habido un error fatal


No se preocupe ahora si no entiendo el significado de estas directivas, ya que se explicarán más adelante. Lo único debe saber es que el nombre que se indica tras el símbolo # es el nombre de la directiva, y el texto que se incluye tras él (no todas las directivas tienen porqué incluirlo) es el valor que se le da. Por tanto, la sintaxis de una directiva es:

#

Es posible incluir comentarios en la misma línea en que se declara una directiva, aunque estos sólo pueden ser comentarios de una línea que empiecen con // Por ejemplo, el siguiente comentario es válido:

#define TEST // Ha habido algún error durante el preprocesado

Pero este otro no, pues aunque ocupa una línea tiene la sintaxis de los comentarios que pueden ocupar varias líneas:

#define TEST /* Ha habido algún error durante el preprocesado */
Como se ha repetido varias veces a lo largo del tema, la principal utilidad del preprocesador en C# es la de permitir la compilación de código condicional, lo que consiste en sólo permitir que se compile determinadas regiones de código fuente si las variables de preprocesado definidas cumplen alguna condición determinada. Para conseguir esto se utiliza el siguiente juego de directivas:

#if

#elif

...
#else

#endif

El significado de una estructura como esta es que si se cumple entonces se pasa al compilador el , si no ocurre esto pero se cumple entonces lo que se pasaría al compilador sería , y así continuamente hasta que se llegue a una rama #elif cuya condición se cumpla. Si no se cumple ninguna pero hay una rama #else se pasará al compilador el , pero si dicha rama no existiese entonces no se le pasaría código alguno y se continuaría preprocesando el código siguiente al #endif en el fuente original.

Aunque las ramas #else y #endif son opcionales, hay que tener cuidado y no mezclarlas ya que la rama #else sólo puede aparecer como última rama del bloque #if...#endif.

Es posible anidar varias estructuras #if...#endif, como muestra el siguiente código:

#define PRUEBA

using System;

class A
{
public static void Main()
{
#if PRUEBA
Console.Write (“Esto es una prueba”);
#if TRAZA
Console.Write(“ con traza”);
#elif !TRAZA
Console.Write(“ sin traza”);
#endif
#endif
}
}

El símbolo ! incluido en junto al valor de la directiva #elif es el símbolo de “no” lógico, y el #elif en el que se usa lo que nos permite es indicar que en caso de que no se encuentre definido el identificador de preprocesado TRAZA se han de pasar al compilador las instrucciones a continuación indicadas (o sea, el Console.Write(“sin traza”);)

El código fuente que el preprocesador pasará al compilador en caso de que compilemos sin especificar ninguna opción /d en la llamada al compilador será:

using System;

class A
{
public static void Main()
{
Console.Write(“Esto es una prueba”);
Console.Write(“ sin traza”);
}
}

La causa de la restricción antes comentada de que no es válido dar un como nombre true o false a un identificador de preprocesado se debe al significado especial que estos tienen en las condiciones de los #if y #elif

A toda variable que se use en un programa, se debera declarar de preferencia al principio del programa.
En C# NET (tambien se le conoce como C# ) existen los siguientes tipos de variables:
En particular cada tipo de dato que se menciona aqui es en realidad un OBJETO, que se deriva a su vez de una clase que provee el framework de microsoft net es por eso que se incluye la clase de la cual proviene el tipo de dato.
Es decir en un programa se podra declarar una variable por ejemplo float pi; o tambien se podra declarar y crear un objeto derivado de esa clase, por ejemplo System.Float alfa = new System.Float(); para este caso observar y tener en cuenta dos cosas:
Observar como se declara y crea un objeto ( este formato de creación de objetos aprenderlo bien).
Como objeto alfa podra usar todas las propiedades y metodos asociadas al objeto, mas adelante se ve un tema donde se analiza mas a fondo el concepto de clases y objetos.
Signed significa que se puede usar el signo + o - al usar la variable.
Por ultimo variables strings o variables cadena, se podran crear usando la clase STRING que creara un objeto de dicho tipo.
Para declarar un variable en un script o programa solo usar el siguiente formato:
Tipo de dato lista de variables; ejemplo:

string nombre, ciudad;
int alfa, beta;
string ciudad=“tijuana”;
float pi=3.1416;

Para el caso de objetos numericos derivados de la clase respectiva, solo usar el formato que se indico en los parrafos de arriba.
Recordar que c# net es case-sensitive, es decir reconoce la diferencia que hay entre mayusculas y minusculas, en otras palabras no declarar alfa e intentar capturar o desplegar ALFA.
Para convertir numeros a strings no hay problema, solo cargar o asignar el numero o variable numerica a la variable string, pero para convertir strings a numeros existen y deberan usarse los metodos Parse de las clases respectivasejemplo;
String beta1=“100”;
Int beta2 = System.Int32.Parse(beta1);

lunes, 25 de febrero de 2008

ESPACIO DE NOMBRES

Clasificacion especial usada para agrupar un conjunto de clases y estructuras reñacionadas, También se ocupa para aislar ese grupo de nombres en conjuntos de tipos de datos separados y distintos. Es imposible tener dos clases con el mismo nombre en un espacio de nombres, pero es posible que existan clases con el mismo nombre en espacios de nombres diferentes.

Los espacios de nombres pueden ser predefindos o definidos por el usuario.

El punto net ".net" tiene clases en espacios de nombre predefinidos, por ejemplo system, para definir un espacio de nombre se utiliza
namespace nombreespacio
[
clases des espacio de nombres
]

Clase:

Unidad básica en la programación orientada a objetos. Todo programa en C# se organiza en clases que encapsulan datos y comportamientos.

Una clase se construye con la palabra class seguida del nombre de la clase y el simbolo de inicio y fin de un bloque (llaves) para delimitar la codificación de sus miembros.

class nombreclase
[
Códificación de los miembros de la clasé
]

Ejemplo:
Clase: Animales (conceptos generales)
Subclase: Carnívoros y Hervioros
Objetos: León con dientes picudos y melena muy grande (caracteristicas que son solamente de el)

METODOS PARA ESCRIBIR DATOS

Un metodo es reconocido por tener parentesís y por los parametros que puede contener. Los metodos usados para escribir datos en pantalla son:
1. Write: escribe sin añadir el caracter de fin de línea a la cadena.
2. WriteLine: si añade el caracer de fin de línea a la cadena, de modo que lo siguiente que se escriba se colocara en la siguiente línea

CLASE MÉTODO (( ))
Console. Write ("Hola");
CADENA DE CARACTERES (" ") ; <--Termina la suma y empieza una diferente

Ejemplo:

Console. Write("Hola");
Console. WriteLine ("Pepe");
Console. Write ("¿Cómo estás, ")
Console. WriteLine ("¿bien?");

Resultado en consola:
HolaPepe
¿Como estás, ¿bien?

LENGUAJE DE PROGRAMACIÓN

El lenguaje de programación tiene 3 herramientas escenciales:

La declaración y uso de variables, ciclos y condicionales.
VARIABLE:

C# NET DECLARACION Y TIPO DE VARIABLES


Toda variable que se use en un programa, se debera declarar de preferencia al principio de este.
En particular cada tipo de dato es en realidad un OBJETO, que se deriva a su vez de una clase que provee el framework.NET de Microsoft, es por eso que se incluye la clase de la cual proviene el tipo de dato.
Es decir en un programa se podra declarar una variable por ejemplo float pi; o tambien se podra declarar y crear un objeto derivado de esa clase, por ejemplo:

System.Float alfa = new System.Float();
Como objeto alfa podra usar todas las propiedades y métodos asociadas al objeto.
Declaración Sencilla

- tipo_variable nombre_variable; Declaración Multiple - tipo_variable nombre_variable1, nombre_variable2, ... nombre_variablen; Inicializarse al momento de ser declarada: int miEntero=0; Inicializarse después en el código: int miEntero; miEntero = 2;
TIPOS DE VARIABLES


Ciclo for (C#)
Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.

En C SHARP NET este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.

Su formato general es:

for (inicialización; condición; incremento)

{ instrucción(es); };

En su forma simple la inicialización es una instrucción de asignación que carga una variable de control de ciclo con un valor inicial.

La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.

El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.

Se deben separar esos 3 argumentos con punto y coma (;)

CICLO WHILE C# NET

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.

Su formato general es :

cargar o inicializar variable de condición;

while(condición)

{

grupo cierto de instrucciones;

instrucción(es) para salir del ciclo;

};

CICLO DO WHILE C# NET

Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición;

También se le conoce por esta razón como ciclo de condición de salida.

Su formato general es :



cargar o inicializar variable de condición;

do {

grupo cierto de instrucción(es);

instrucción(es) de rompimiento de ciclo;

} while (condición);

martes, 19 de febrero de 2008

ELEMENTOS LEXICOS DE UN PROGRAMA

ELEMENTOS LEXICOS DE UN PROGRAMA


1. Comentarios: Anotaciones para documentar el programa.Se utilizan de la siguiente forma:
//para documentar sobre un renglon
/*anotaciones*/ se utiliza para comentar parrafos

2. Palabras Reservadas: Palabras que tiene un determinado significado para el compilador. if

3. Identificadores: Nombes que los programadores dan a los diferentes elemetos de un programa. LAs caracteristicas que deben contener son las siguientes:

1. Secuencia de letras, dígitos y caracteres
2. No deben coinsidir con una palabra reservada
3. No deben empezar con un dígito
4. Son sensibles a maysculas y minusculas
5. Se acostubra poner nombres significativos y que la primera letra de la palabra se en mayusculas

4. Operadores y Punteros: Los operadores indican la operaciones que se van a realizar y los punteros agrupan o separan.

5. Literales: Valores constantes escritos directamente en el programa

6. Directivas de Procesador: Son instrucciones al compilador comienzan con # ejemplo:
#includde busca la libreria math para que funcionaran las operaciones con las potencias.

SENTENCIAS Y BLOQUES

Sentencia: Representación de una acción o secuencia de acciones ejecutables (operaciones:+-/*) o no ejecutables (las declaraciones)

Bloque: Grupo de sentencias delimitadas por llaves

METODO MAIN

Es un punto de entrada al programa y la ejecución siempre inicia en el metodo main.

Debe de tener las siguientes caracteristicas:

Declarado static en una clase o estructura
Regresar void o int
Debe de ser escrito con mayuscula la primera letra y minuscula lo demas
Puede no tener parametros o resivir un arreglo de strings
Ejemplo:

Using System;
namespace ~ConsoleApplication1
{
class Class1
{
static void Main (string [ ] args)
{
//TODO: se agrega código para la aplicación
}
} }

lunes, 18 de febrero de 2008

PROGRAMACION EN C#

Que es programar

Que obedesca una serie de instrucciones bien detalladas. Usando un lenguaje de programación q

Se conoce como programación de computadoras a la implementación de algoritmos en un determinado lenguaje de programación, conformando un programa.

PROGRAMA:
Concepto desarrollado por Von Neumann en 1946.
Unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar y una estructura de datos que almacena la información independiente de las instrucciónes que dicha secuencia maneja.
Para ellos se usan lenguajes de programación que sirven para programar la secuencia de instrucciones requeridas. Segun Niklaus Wirth un programa esta formado por algoritmos y estructura de datos.

LENGUAJE DE PROGRAMACIÓN.

1. Viñeta tiene un número limitado de simbolos y también un número limitado de palabras.
2. Costituido por un conjunto de reglas sintatícas y semanticas. SIntaticas se refiere a la especificación de la formación de instucciones válidas. Semanticas especifican el significado de estas instrucciones.
3. La estructura o codificación del programa puede resultar una tarea sencilla si conocemos las reglas sintaticas y semanticas que constituyen el lenguaje de programación.

ANTECEDENTES DE C#.

http://es.wikipedia.org/wiki/Línea_de_tiempo_de_lenguajes_de_programación

El lenguaje B por Ken Thompson en 1970: recodificar el sistema operativo UNIX. Inspirado en el BCPL de Martin Richard, diseñado tres años antes.


En 1972 es Dennis Ritchie diseña finalmente C a partir del B, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior.

Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.

1980 surge C++ de la mano de Bjarne Stroustrup (Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos.

Evolución de C++ incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening.

Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.

2001 se aprueba el ECMA y en el 2003 el ISO.

viernes, 8 de febrero de 2008

CUESTIONARIO AUTENTICACIÓN

# 1 Fase de autenticación (optativa): una vez establecido el enlace, y seleccionado el protocolo de autenticación, se puede autenticar el dispositivo par. La autenticación, en caso de que se utilice, se lleva a cabo antes de que comience la fase del protocolo de la capa de red. Como parte de esta fase, el LCP también permite efectuar una prueba opcional de determinación de la calidad del enlace. El enlace se prueba para determinar si su calidad es suficiente para activar los protocolos de capa de red.
# 2 Las opciones de autenticación requieren que la parte del enlace que realiza la llamada introduzca la información de autenticación. Esto ayuda a garantizar que el usuario tenga el permiso del administrador de la red para efectuar la llamada. Los routers pares intercambian mensajes de autenticación.
# 3 Al configurar la autenticación PPP, el administrador de la red puede seleccionar el Protocolo de autenticación de contraseña (PAP) o el Protocolo de autenticación de intercambio de señales (CHAP). Por lo general, el protocolo de preferencia es CHAP.
# 4 Estas son: establecimiento del enlace, autenticación y fase del protocolo de la capa de red.
# 5PAP ofrece un método sencillo para que un nodo remoto establezca su identidad, mediante el intercambio de señales de dos vías. Una vez que se ha completado la fase de establecimiento del enlace PPP, el nodo remoto envía el conjunto de nombre de usuario/contraseña por el enlace repetidas veces hasta que se acusa recibo de la autenticación o la conexión se termina.
# 6 PAP no es un protocolo de autenticación sólido. Las contraseñas se envían por el enlace en texto no cifrado, y no hay protección contra la reproducción o los intentos de descubrimiento mediante intentos reiterados de ensayo y error. El nodo remoto tiene control de la frecuencia y la temporización de los intentos de conexión.
# 7 CHAP se utiliza al iniciar un enlace y verifica, de forma periódica, la identidad del nodo remoto por medio de un intercambio de señales de tres vías. CHAP se realiza al establecer el enlace inicial y se repite durante el tiempo que dure el enlace.
# 7
#

El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp

#


Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]


El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp

La compresión de software de punto a punto puede configurarse en las interfaces seriales que utilizan encapsulamiento PPP. La compresión se ejecuta en el software y puede afectar el rendimiento del sistema de forma significativa. No se recomienda la compresión si la mayor parte del tráfico está compuesto por archivos comprimidos.

Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]

Introduzca los siguientes comandos para monitorear los datos que se pasan al enlace y para evitar la formación de bucles en las tramas:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp quality percentage

El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp

La compresión de software de punto a punto puede configurarse en las interfaces seriales que utilizan encapsulamiento PPP. La compresión se ejecuta en el software y puede afectar el rendimiento del sistema de forma significativa. No se recomienda la compresión si la mayor parte del tráfico está compuesto por archivos comprimidos.

Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]

Introduzca los siguientes comandos para monitorear los datos que se pasan al enlace y para evitar la formación de bucles en las tramas:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp quality percentage

Los siguientes comandos ejecutan el equilibrio de las cargas en múltiples enlaces:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp multilink

martes, 22 de enero de 2008

ACUMULADORES Y CONTADORES

Acumulador.

En un cpu de computadora, el acumulador es el registro en el que son almacenados temporalmente los resultados aritméticos y lógicos intermedios que serán tratados por la unidad aritmético-lógica (alu).
Sin un registro como un acumulador, sería necesario escribir el resultado de cada cálculo (como adición, multiplicación, desplazamiento (shift), etc.) en la memoria principal, quizás justo para ser leída inmediatamente otra vez para su uso en la siguiente operación. El acceso a la memoria principal es significativamente más lento que el acceso a un registro como el acumulador porque la tecnología usada para la memoria principal es más lenta (pero más barata) que la usada para un registro interno del CPU.

Contador de programa.

El contador de programa, es un registro del procesador de un computador que indica la posición donde está el procesador en su secuencia de instrucciones. Dependiendo de los detalles de la máquina particular, contiene o la dirección de la instrucción que es ejecutada, o la dirección de la próxima instrucción a ser ejecutada. El contador de programa es incrementado automáticamente en cada ciclo de instrucción de tal manera que las instrucciones son leídas en secuencia desde la memoria. Ciertas instrucciones, tales como las bifurcaciones y las llamadas y retornos de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el contador de programa

ConTAdDor:
Contador=Valor
Cont=Contador + Valor

AcumulaDoR:
Suma=0
Producto=1

Ejemplo:

Inicio

S=0
P=1
I=1


1>5
no: si:
S=S+1 P, S
P=P*1 FIN

I=1+1

DIAGRAMA DE FLUJO

Reglas para elaborar un diagrama de flujo

1.- Se debe de escribir de arriba hacia abajo y de izquierda a derecha.
2.- Los símbolos se unen con lineas.
3.- Se usan flechas para indicar el flujo de información.
4.- Los símbolos de decisión pueden y deben tener más de una línea de flujo.
5.- Todos los símbolos pueden tener más de una línea de entrada.

ALGORITMOS

Algoritmos

DEFINICIÓN:

Modo de solución de un problema de caracter general. Conjunto finito de instrucciones que sirven para ejecutar un programa. Secuencia lógica de pasos a seguir para la solución de un problema

CARACTERISTICAS:

1. Precizo: precizo el orden de cada paso.
2. Definido: que se debe obtener el mismo redultado.
3. Finito: Debe de tener un fin en un número determinado de partes.
4. Esta constituido por 3 partes. ***

DIAGRAMA DE FLUJO

La herrramienta algoritmica es el diagramas de flujo. Es la representación visual de cada paso del algoritmo, utilizando simbolos, en el que se representan todas las operaciones que se lleban acabo sobre los datos.


SIMBOLOGIA

viernes, 18 de enero de 2008

Sintaxis

Ruta estática

Router(config)#ip route[dirección IP de la red destino+máscara][IP del primer salto/interfaz de salida][distancia administrativa]

Router_B(config)#ip route 172.16.0.0 255.255.0.0 serial 0 120
Router_B(config)#ip route 172.16.0.0 255.255.0.0 200.200.10.1 120

Ruta por defecto

Router_B(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1

Proceso de traducción NAT

Configuración NAT estático:

Para configurar NAT estático se deben seguir los siguientes pasos:

Definir el mapeo de las direcciones estáticas:

ip nat inside source static local-ip global-ip

ip nat inside source static network local-network global-network mask

Especificar la interfaz interna

ip nat inside

Especificar la interfaz externa

ip nat outside
R# configure terminal
R(config)# ip nat inside souce static 10.1.1.1 198.3.4.1
R(config)# interface e0
R(config-if)# ip nat inside
R(config-if)# exit

R(config)# interface s0
R(config-if)# ip nat outside
R(config-if)# exit

Configuración NAT dinámico:

Para configurar NAT dinámico se deben seguir los siguientes pasos:

Crear un conjunto de direcciones globales:

ip nat pool name start-ip end-ip {netmask mask | prefix-length prefix-length}

Crear una ACL que identifique a los hosts para la traslación

access-list access-list-number permit source {source-wildcard}

Configurar NAT dinámico basado en la dirección origen

ip nat inside source list access-list-number pool name

Especificar la interfaz interna

ip nat inside

Especificar la interfaz externa

ip nat outside

R# configure terminal
R(config)# ip nat pool fib-xc 198.3.4.1 198.3.4.254 netmask
255.255.255.0
(config)# access-list 2 permit 10.1.1.0 0.0.0.255
R(config)# ip nat inside source list 2 pool fib-xc
R(config)# interface e0
R(config-if)# ip nat inside
R(config-if)# exit
R(config)# interface s0
R(config-if)# ip nat outside
R(config-if)# exit
R(config)# exit
R# show ip nat translations

VERIFICACIÓN DE NAT

show ip nat translations
show ip nat translations verbose
show ip nat statistics
debug ip nat (no debug ip nat)
clear ip nat translations  elimina todas las traslaciones NAT

jueves, 10 de enero de 2008

Fases de Solucion de un problema

FASES DE SOLUCIÓN DE UN PROBLEMA

1. Analísis del problema
Aquí se define la descripción global de lo que es el problema.

2.Definición del problema.
Se describe de manera preciza y se delimita hasta donde se quiere llegar

3.Definición de las entradas y salidas
Lo que se busca obtener al finalizar el problema

4.Proceso de solución
definir los pasos para solucionar mi problema de una manera muy preciza

5.Comprobación
El que comprueba que el proceso de solución


Fases cuando el problema lo esta resolviendo una computadora:

1. Análisis del problema

2.Diseño de Algoritmo

3.Codificación

4.Compilación y Ejecución

5.Verificación

6.Depuración

7.Documentación

ALGORITMO: sucesion de pasos a seguir para llegar a una solución


Ejemplo:

Pintar una Pared

1.Analisis del problema: Pintar una pared
2.Descripción del problema: Pintar una pared de mi recamara de 2,50x3,20
3.Entradas:
Pared
Pintura (1l)
Peródico
Brocha
Salida:
Pared de mi cuarto pintada.
4. paso a paso como utilizando las entradas se llega a la salida
5.Comprobación:Verificar que haya pintado bin la pared

EJERCICIO:
I. Cambiar un foco

1. Cambiar un foco
2.Cambiar un foco que ya no prende por uno que si funcine y alumbre
3.ENTRADAS:
un foco
una escalera
SALIDA:
Foco que alumbra
4.SUbirse a la escalera, despues desenroscar el foco que ya no sirve, despues poner el foco nuevo y listo.
5.Verificar que el nuevo foco ensienda.

II.Suma de 3 dígitos

1.Suma de 3 dígitos
2.Sumar cantidades de 3 dígitos
3.ENTRADAS:
hoja de papel
calculadora
lapíz
SALIDA:
solución para una suma de 3 dígitos
4.poner la cantidad de 3 dígitos dada, en la calculadora, despues presionar el boton + y luego la otra cifra, y asi dependiendo del numero de cifras, despues presionar el boton de = y listo.
5.Tener una cantidad correcta de esa suma

PROBLEMAS

PROBLEMAS

Problea es un asunto del que se espera una solución
Problema-Investigación

El problema responde el por que?. Se refiere a un objeto/situación que genere una nesecidad e transformar mi situación actual.
El problema surge de lo que es el diagnostico de una situación
metodo es el camino por el que se llega a un resultado
metodo cientifico- es el camino que utilizan ciertas ciencias para llegar a la verdad

Etapas del metodo cientifico:

1.detccion delimitacion y planteamiento de un problema
2.determinación de los antecedentes y del estado actual del problema
3.justificación
4.fijación de los prositos y objetivos de la investigación
5.elavoracion de la hipotesis
6.diseño de la investigación y analisis de las variables
7.descripción de los resultados
8.la discución
9.obtención de las conclusiones
10.descripción de los problemas pendientes
11.elavoración de resumen y bibliografía


CONCEPTOS GENERALES

DATOS: es la parte minima de la información, la parte que describe a un objeto específico

INFORMACIÓN:Conjunto de datos que generan un conocimiento en general

INFORMATICA:ciencia que se encarga del tratamiento sistematico y automatisado de la información mediante la creación de metodos y técnicas para el desarrollo de nuevos dispositivos

COMPUTACIÓN: conjunto de disiplinas y tecnicas desarrolladas para el tratamiento automatíco de la información, considerada como soporte de los conocimientos de la sociedad humana, mediante el uso de computadoras

INSTRUCCIÓN:orden que se da para ejecutar una acción, sinonimo de comando, que realiza una acción en un lenguaje de programación que puede entender y ejecutar una computadora.

PROGRAMA: conjunto de instrucciones que indican a una computadora como realizar una operación

PROGRAMACIÓN:es la elavoración de problamas

CONSTANTES: es una variable cuyo valor puede determinar el compilador y puede aplicar obtimizaciones derivadas de ello. Para que esto sea posible, se ha de cumplir que el valor de una constante no puede cambiar durante la ejecución, por lo que el compilador informara con un error de todo intento de modificar el valos inicial de una constante