lunes, 24 de mayo de 2010
Area y Perimetro de un circulo
Linea 3 class Circulo es la declaracion de la clase
Linea 4 se declara un metodo para nuestra clase al abrir un llave {
Linea 5 y 10 son declaraciones de metodos
Linea 19 crea objeto
Linea 6 a 9 y 11 a 14 son funciones
Linea 20 C.Area(r) es la invocacion al metodo Area dentro de la clase Circulo.
linea 20 es (int r) linea 5 , es decir, el valor que ingreso el usuario en linea 18
Linea 21 C.Perimetro (r*2) es la invocacion al metodo Perimetro dentro de la classe Circulo
(r*2) linea 21 es (int d) linea 10, es decir, el valor qu ingreso el usuario multiplicado por dos.
'
El programa empieza a correr a partir de la linea 15 e inmediatamente pide al usuario que de un radio. El numero que el usuario ingrese se guardara en la variable r. El tipo de dato que aceptara sera de tipo int
Posteriormente en la linea 19 el programa invoca a la clase Circulo y crea un nuevo objeto, es decir, un nuevo circulo. mediante esa invocacion a la clase circulo el programa ejecuta la linea 3, ya que en esa linea se declaro un clase llamada Circulo. De la linea 6 a la 9 se ejectua una funcion. La funcion indica que se multiplicara el valor de 3.1416 por el radio que ingreso el usuario elevado al cuadrado. La instruccion return de la linea 8 indica al programa que mande el resultado a la linea 20 y esta a su vez lo imprimira en la pantalla del usuario.
Posteriormente se ejecuta la funcion que se encuentra en las lineas 11 a 14 que multiplica el diametro por el valor de 3.1416. La instruccion return de la linea 13 manda el resultado a la linea 21 que imprimira el resultado al usuario.
miércoles, 21 de abril de 2010
Practica 1
Programacion orientada a objetos
La POO es un paradigma de programación que intenta abstraer los módulos de cada programa en objetos. Los objetos son instancias de clases, en las que se declaran/especifican al menos dos cosas: los atributos, los métodos y opcionalmente los constructores.
Los atributos son las variables que posee el objeto, mientras que los métodos son las funciones o procedimientos que podemos invocar para realizar operaciones específicas sobre los atributos.
Como en Java, en C Sharp utilizamos siempre clases y objetos, aún cuando no tengamos claro el concepto. Por ejemplo, el simple hola mundo:
1 | using System; |
2 | class Hola{ |
3 | static void Main( string [] args){ |
4 | Console.WriteLine( "Hola parce!" ); |
5 | } |
6 | } |
En cada línea de código estamos usando la programación orientada a objetos: línea 1, creamos una clase (llamada Hola); línea 2, declaramos un método (función) para nuestra clase; línea 3, usando la clase Console
invocamos el método WriteLine
. Todo, programación orientada a objetos.
Objeto:
Los objetos son construcciones de programación que se componen de datos, comportamiento e identidad. Los datos del objeto se encuentran en los campos, propiedades y eventos del objeto; los métodos e interfaces del objeto definen los comportamientos del objeto.
Los objetos tienen identidad, es decir, dos objetos con el mismo conjunto de datos no son necesariamente el mismo objeto.
En C#, los objetos se definen mediante classes y structs, que conforman el plano único a partir del cual operan todos los objetos de ese tipo.
Los objetos tienen las propiedades siguientes:
Todo lo que se utiliza en C# es un objeto, incluidos los formularios Windows Forms y los controles.
Se crean instancias de objetos; es decir, éstos se crean a partir de plantillas definidas por clases y estructuras.
Los objetos utilizan propiedades para obtener y cambiar la información que contienen.
A menudo, los objetos tienen métodos y eventos que les permiten realizar acciones.
Visual Studio proporciona herramientas para manipular objetos: la propiedades (ventana) permite cambiar los atributos de los objetos, como formularios Windows Forms. El examinador de objetos permite examinar el contenido de un objeto.
Todos los objetos de C# heredan de object.
Un campo es una variable de cualquier tipo que se declara directamente en una clase o estructura. Los campos son miembros de su tipo contenedor.
Una clase o estructura puede tener campos de instancia, campos estáticos o ambos. Los campos de instancia son específicos de una instancia de un tipo. Si tiene una clase T, con un campo de instancia F, puede crear dos objetos de tipo T y modificar el valor de F en cada objeto sin afectar al valor del otro objeto. Por el contrario, un campo estático pertenece a la propia clase y se comparte entre todas las instancias de dicha clase. Los cambios realizados en la instancia A serán inmediatamente visibles en las instancias B y C si tienen acceso al campo.
Por regla general, solo debe utilizar campos para variables con accesibilidad privada o protegida. Los datos que la clase expone al código de cliente se deben proporcionar a través de métodos, propiedades e indizadores. Si se utilizan estas construcciones para el acceso indirecto a campos internos, se establece una protección ante valores de entrada no válidos. Un campo privado que almacena los datos expuestos por una propiedad pública se denomina dispositivo de copia de seguridad o campo de respaldo.
Habitualmente los campos almacenan los datos a los que deben tener acceso más de un método de clase y que se deben almacenar durante más tiempo que el período de duración de un único método. Por ejemplo, una clase que representa una fecha del calendario podría tener tres campos enteros: uno para el mes, otro para el día y un tercero para el año. Las variables que no se utilizan fuera del ámbito de un único método se deben declarar como variables locales dentro del propio cuerpo del método.
Los campos se declaran en el bloque de clase especificando el nivel de acceso del campo, seguido por el tipo de campo y después por el nombre del mismo. Por ejemplo:
public class CalendarEntry
{
// private field
private DateTime date;
// public field (Generally not recommended)
public string day;
// Public property exposes date field safely.
public DateTime Date
{
get
{
return date;
}
set
{
if(value.Year > 1980 || value.Year <= 2008) { date = value; } else
throw new ArgumentOutOfRangeException();
}
}
// Public method also exposes date field safely.
public void SetDate(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);
if (dt.Year > 1980 || dt.Year <= 2008) { date = dt; } else
throw new ArgumentOutOfRangeException();
}
public TimeSpan GetTimeSpan(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);
if (dt != null && dt.Ticks < style="color:Blue;">return date - dt;
}
else
throw new ArgumentOutOfRangeException();
}
}
Para obtener acceso a un campo en un objeto, agregue un punto después del nombre de objeto, seguido del nombre del campo, como en objectname.fieldname. Por ejemplo:
Se puede proporcionar un valor inicial a un campo utilizando el operador de asignación cuando se declara el campo. Para asignar automáticamente al campo day el valor "Monday", por ejemplo, declararía day como en el ejemplo siguiente:
Los campos se inicializan inmediatamente antes de llamar al constructor para la instancia de objeto. Si el constructor asigna el valor de un campo, sobrescribirá cualquier valor dado durante la declaración del campo.
Los campos se pueden marcar como public, private, protected, internal o protected internal. Estos modificadores de acceso definen cómo pueden tener acceso a los campos los usuarios de la clase.
Un campo puede declararse de forma opcional como static. Esto hace que el campo esté siempre disponible para los llamadores, aunque no exista ninguna instancia de la clase.
Un campo puede declararse como readonly. Solo es posible asignar un valor a un campo de tipo readonly durante la inicialización o en un constructor. Un campo staticreadonly es muy similar a una constante, excepto en que el compilador de C# no tiene acceso a él en tiempo de compilación, solo en tiempo de ejecución.Método:
Un método es un bloque de código que contiene una serie de instrucciones. Los programas hacen que las instrucciones se ejecuten mediante una llamada al método y la especificación de los argumentos de método necesarios. En C#, cada instrucción se ejecuta en el contexto de un método. El método Main es el punto de entrada de cada aplicación C# al que llama Common Language Runtime (CLR) cuando se inicia el programa.
Los métodos se declaran en una clase o estructura mediante la especificación del nivel de acceso como public o private, modificadores opcionales como abstract o sealed, el valor devuelto, el nombre del método y cualquier parámetro de método. Todos esos elementos constituyen la firma del método.
Los parámetros del método se encierran entre paréntesis y se separan por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro. Esta clase contiene tres métodos:
abstract class Motorcycle
{
// Anyone can call this.
public void StartEngine() {/* Method statements here */ }
// Only derived classes can call this.
protected void AddGas(int gallons) { /* Method statements here */ }
// Derived classes can override the base class implementation.
public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; }
// Derived classes must implement this.
public abstract double GetTopSpeed();
Función:
En programación orientada a objetos (POO), una función virtual o método virtual es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO.En .POO, cuando una clase derivada hereda de una clase base, un objeto de la clase derivada puede ser referido (o coercionado)tanto como del tipo de la clase base como del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase derivada, aparece un problema cuando un objeto derivado ha sido cohercionado como del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el comportamiento de la llamada a la función deseado es ambiguo Procedimiento: Son unidades de código compuestas por una o más sentencias y que son almacenados en el servidor.
miércoles, 24 de marzo de 2010
lunes, 1 de marzo de 2010
Aunque string es un tipo de referencia, los operadores de igualdad (== y !=) se definen para comparar los valores de objetos string, no las referencias. De esta forma, es más intuitivo comprobar la igualdad entre cadenas.
La palabra clave short denota un tipo de datos integral que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.
Metodos para leer datos
Metodos para escribir datos
Clases
espacio de nombres
domingo, 28 de febrero de 2010
miércoles, 24 de febrero de 2010
Elementos lexicos de un programa
Los bloques son grupos de sentencias delimitadas por llaves ({ })
MÉTODO MAIN
Es el punto de entrada al programa, y la ejecución siempre inicia en el método Main.
El método Main debe ser:
Declarado Static en una clase u estructura, debe regresar "void" o "int". Debe ser escrito Main, y puede no tener parámetros y recibir un arreglo de Strings
lunes, 22 de febrero de 2010
c# antecedentes
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++.
c#
jueves, 18 de febrero de 2010
acl
cisco capitulo 8
.- ¿Qué son las ACL?
ACL significa Access Control List, y es un concepto de seguridad informática usado para fomentar la separación de privilegios. Es una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.
Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir "tráfico interesante" (tráfico suficientemente importante como para activar o mantener una conexión) en ISDN.
Fuente Info: http://es.wikipedia.org/wiki/Lista_de_control_de_acceso
2.- Proceso detallado de configuración de ACL
El proceso de creación de una ACL se lleva a cabo creando la lista y posteriormente asociándola a una interfaz entrante o saliente.
Configuración de ACL estándar
Router(config)#access-list[1-99][permit|deny][dirección de origen][mascara comodín]
Donde:
1-99 Identifica el rango y la lista.
Permit|deny indica si esta entrada permitirá o bloqueará el tráfico a partir de la dirección especificada.
Dirección de origen identifica la dirección IP de origen.
Mascara comodín o wildcard identifica los bits del campo de la dirección que serán comprobados.
La mascara predeterminada es 0.0.0.0 (coincidencia de todos los bits).
Asociación de la lista a una interfaz
Router(config-if)#ip access-group[nº de lista de acceso][in|out]
Donde:
Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.
In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.
Ejemplo de una ACL estándar denegando una red:
Router#configure terminal
Router(config)#access-list 10 deny 192.168.1.0 0.0.0.0
Router(config)#access-list 10 permit any
Router(config)#interface serial 0
Router(config-if)#ip access-group 10 in
Se ha denegado al host 192.168.1.0 y luego se ha permitido a cualquier origen,
Posteriormente se asocio la ACL a la interfaz Serial 0.
Configuración de ACL extendida
El proceso de configuración de una ACL IP extendida es el siguiente:
Router(config)#access-list[100-199][permit|deny][protocol][dirección de origen][mascara comodín][dirección de destino][mascara de destino][puerto][establisehed][log]
100-199 identifica el rango y número de lista
Permit|deny: indica si la entrada permitirá o bloqueara la dirección especificada.
Protocolo: como por ejemplo IP, TCP, UDP, ICMP
Dirección origen y destino: identifican direcciones IP de origen y destino.
Mascara wildcard origen y mascara destino: Son las mascaras comodín. Las 0 indican las posiciones que deben coincidir, y los 1 las “que no importan”.
Puerto:(opcional) puede ser por ejemplo: lt (menor que), gt (mayor que), eq (igual a), o neq (distinto que) y un número de puerto de protocolo correspondiente.
Establisehed: (opcional) Se usa solo para TCP de entrada. Esto permite que él rafico TCP pase si el paquete utiliza una conexión ya establecida (por ejemplo posee un conjunto de bits ACK)
Log: (opcional) Envía un mensaje de registro a la consola a un servidor syslog determinado.
Algunos de los números de puertos más conocidos:
20 Datos del protocolo FTP
21 FTP
23 Telnet
25 SMTP
69 TFTP
53 DNS
Asociación de la lista a una interfaz
Router(config-if)#ip access-group[nº de lista de acceso][in|out]
Donde:
Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.
In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.
Ejemplo de una ACL Extendida denegando un host hacia el puerto 80 de una red:
Router(config)#access-list 120 deny tcp host 204.204.10.1 any eq 80
Router(config)#access-list 120 permit ip any any
Router(config)#interface serial 1
Router(config-if)#ip access-group 120 in
Se ha denegado al host 204.204.10.1, (identificándolo con la abreviatura “host”) hacia el puerto 80 de cualquier red de destino (usando el termino any). Posteriormente se permite todo trafico IP. Esta ACL se asocio a la interfaz Serial 1 como entrante.
Aplicación de una ACL a la linea de telnet
Para evitar intrusiones no deseadas en las conexiones de telnet se puede crear una
lista de acceso estándar y asociarla a la Line VTY. El proceso de creación se lleva a cabo como una ACL estándar denegando o permitiendo un origen hacia esa interfaz. El modo de asociar la ACL a la Línea de telnet es el siguiente:
router(config)#line vty 0 4
router(config-line)#access-class[Nº de lista de acceso][in|out]
Como eliminar las listas de acceso
Desde el modo interfaz donde se aplico la lista:
Router(config-if)#no ip access-group[Nº de lista de acceso]
Desde el modo global elimine la ACL
miércoles, 20 de enero de 2010
Problema - Investigación - Solución
Resolución de problemas por computadora
El proceso de resolución de problemas conduce a la escritura de un programa y a su ejecución en la misma aunque el proceso de diseño del programa es escencialmente un proceso creativo y se puede considerar una serie de fases o pasos comúnes que generalmente deben seguir todos los programadores.
- Datos: Es una parte que describe un objeto específico.
- Información: Conjunto de datos que generan un conocimiento en general.
- Informática: Ciencia que se encarga del tratamiento sistemático y automatizado de la información mediante la creación de métodos y técnicas para el desarrollo del nuevo dispositivo.
- Computación: Conjunto de disciplinas y técnicas desarrolladas para el tratamiento automático de la información mediante el uso de computadoras.
- Instrucción: Orden que se da para ejecutar una acción, sinónimo de comando que realiza una acción en 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 elaboración de programas.
- Constantes: Es una variable cuyo valor puede determinar el compilador durante la compilación. Para que esto sea posible se ha de cumplir que el valor de una constante no pueda cambiar durante la ejecución, por lo que el compilador informará con un error de todo intento de modificar el valor inicial de una constante.
- Análisis del Problema
- Diseño de Algoritmo
- Codificación
- Compilación y ejecución
- Verificación
- Depuración
- Documentación
Algoritmo:
- es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.
- Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico.
- Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado.
2. Ejemplos cotidianos de algoritmos:
- Pasos para cambiar la llanta de un coche
- Instructivo
- Receta de Cocina
3. Características de un algoritmo:
- Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
- Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
- Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.
4. Simbolos para hacer un diagrama de flujo
5. Reglas básicas para hacer un diagrama de flujo- Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
- Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
- Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario.
- No deben quedar líneas de flujo sin conectar
- Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
- Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
- Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida.