domingo, 18 de abril de 2010

Práctica 1

Con éste programa se obtiene el perímetro y el área de un circulo con el radio que es dado por el usuario.
Math.PI*Math.Pow(r, 2); es la fórmula para obtener el área
Circulo c =new Circulo(); indica que el programa pertenece a la clase c
{0:n}\n",c.Area (r)); se debe aplicar la fórmula para obtener el área
Math: indica que se hace una operación matemática
PI: es el valor de 3.1416
Pow: indica que un numero se elevara al cuadrado (r,2)primero base-->exponente
Circulo c= new... : es el objeto, crear uevo objeto en la clase c
c: sin ella no se sabe a donde llegar (identifica a donde se debe llegar)

viernes, 16 de abril de 2010

POO

Programación 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:

1using System;
2class 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.

Campo:

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:

CalendarEntry birthday = new CalendarEntry();
birthday.day = "Saturday";


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:

public class CalendarDateWithInitialization
{
public string day = "Monday";
//...
}

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.
funcion procedimiento

miércoles, 17 de marzo de 2010

lunes, 1 de marzo de 2010

Espacio de Nombres


Es una clasificiación especial utilizada para agrupar un conjunto de clases y estructuras relacionadas asi como para aislar ese grupo de nombres en conjuntos de tipos de datos separados y distintos.
No se debe de tener dos clases con el mismo nombre en un espacio de nombres y pueden ser predefinidos o definidos por el usuario

Sintaxis
namespace NombreEspacio
{
//aqui van las clases del 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" seguido del nombre de la clase y el inicio y fin de un bloque para delimitar la codificación de sus miembros

Sintaxis
class NombreClase
{
//aqui se codifican los miembros de la clase
}

Métodos para escribir datos
1. WRITE- escribe sin añadir el caracter de fin de linea a la cadena
2. WRITELINE- si añade el caracter de fin de linea a la cadena de modo que lo siquiente que se escriba se colocara en la siguiente linea
Ejemplo:Console.Write("Hola");
Console.WriteLine("Pepe");
Console.Write("Como estas, ");
Console.WriteLine("¿Bien?");
OFRECERIA ESTE RESULTADO EN LA CONSOLA
HolaPepe
Como estas, ¿Bien?

Métodos para leer datos
variable = Console.Read(); // Lee un caracter
cadena = Console.ReadLine; // Lee una cedena

Variables de Datos
Variable- Posicion con nombre en la memoria donde se almacena un valor de un cierto tipo de dato y puede ser modificado, las variables pueden almacenr cadenas, numero y estructuras. Tienen un nombre(identificador) que describe su propósito.

Constante- variable cuyo valor no puede ser modificado

Tipos de Datos
1) ENTEROS- Probablemente el tipo de dato mas familiar identificado con la palabra reservada "in"
2) REALES- Numero decimales o números muy grandes
3) CARACTERES- cualquier elemento de un conjunto de caracteres o alfabeto (letras, digitos, simbolos y signos de puntuación)

Tipo, Descripcion y valores que acepta:

miércoles, 24 de febrero de 2010

Elementos léxicos de un programa

  1. Comentarios. Anotaciones para documentar un programa. Existen 2 formas para comentar un programa. // Para un renglón
    /* Para más de un renglón
  2. Palabras reservadas: Palabras que tienen un significado para el compilador
  3. Identificadores: Nombres que los programadores dan a los diferentes elementos de un programa. Deben de tener las siguientes características: Letras, dígitos o caractéres
    Diferentes a las palabras reservadas
    No comenzar con dígitos
    Sensible a mayúsculas y minúsculas
    Debe contener nombres significativos
  4. Operadores y punteros: Los operadores indican las operaciones y los punteros agrupan o separan. Ej. }
  5. Literales: Valores constantes escritos directamente en el programa.
  6. Directivas del procesador al compilador: comienzan con un signo de gato #
Sentencias y Bloques:
La sentencia es la representación de una acción o secuencia de acciones ejecutables (operacion) y no ejecutables (declaraciones).
Los bloques son grupos de sentecnias delimitadas por llaves.

Método Main:
Es el punto de entrada al programa y la ejecucción siempre inicia el el método main. El método main debe ser: declarado "static" en una clase o estructura, deben regresar de "void" o "int" , debe ser escrito "Main" y puede no tener parametros o recibir un arreglo de "strings"

martes, 23 de febrero de 2010

SSH

SSH (Secure Shell).- Es un programa para conectarse de manera segura a otra computadora con el obetivo de compartir recursos.

La sintaxis es la siguiente:
ssh(espacio)(usuario al que te quieres conectar)@(computadora a la que se quiere conectar)

SFTP
Secure File Transfer Protocol

sftp(espacio)darwin@192.168.2.150

para transferir.- put(espacio)

lunes, 22 de febrero de 2010

C#

Programar es hacer que obedezca una serie de instrucciones bien detalladas usando un lenguaje de programación.
Al usar un lenguaje de programación indicamos a la computadora que tiene que suceder cada momento

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

Programa.- Concepto desarrollado por Paul Newman n 1946. Se define como la unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar 1 o varias estructuras de datos que almacenan la información de datos independientes de las estructuras que dicha secuencia de instrucciones maneja.

Según Niklaus Wirth, un program está formado por algoritmos y estructuras de datos.

Lenguaje de Programación
Es la traducción del lenguaje hombre al leguaje máquina, el cual tiene un número limitado de datos y palabras. Está constituido por un conjunto de reglas:
  • Sintácticas: especifican la formación de instrucciones válidas
  • Semánticas: Especifican el significado de éstas instrucciones
Antecedentes de C# desde los 70's:

1970- El lenguaje B por Ken Thompson
1972- Dennis Ritchie diseña finalmente C a partir del B
1983- se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares).
90- el estándar es reconocido por la ISO (Organización Internacional de Estándares)
1980- surge C++ de la mano de Bjarne Stroustrup
1990- se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje.
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
2003- se apruba el ISO.

Scripts

Un script es una secuencia de instrucciones almacenadas en un archivo que el sistema operativo puede ejecutar. Un script puede contener:
  1. Comandos de Unix
  2. Variables Condicionales y cualquier otra herramienta de un lenguaje de programación
En cualquier caso un script se puede escribir en cualquier editor de textos.

./(nombredelarchivo) : para ejecutar un script
pero dentro del archivo(script con comandos), y como volvi el script un programa (le cambie los permisos para ejecutarlo) ya te dice lo que tiene ls -l, como si lo pusiera solo.

jueves, 18 de febrero de 2010

cisco 9

Cisco2

Práctica de laboratorio 8.2.1 Planificación de listas de acceso y filtros del puerto

Objetivo:

Basándose en el diagrama de red predefinido, determinar dónde se deben implementar las listas de acceso y los filtros del puerto para ayudar a proteger la red.

Información básica

Usted es el técnico de soporte que se envió al lugar para evaluar la red actual de un cliente comercial que quisiera reducir el riesgo de una ruptura en la seguridad de la red.

Identificar dónde se deben colocar las listas de acceso

Paso 1: Limitar el cliente A a una subred

Se le solicita limitar el cliente A a solamente la subred a la cual se encuentra actualmente vinculado. El cliente A necesita poder acceder al servidor A, pero no necesita acceso a Internet ni al servidor B. ¿Dónde colocaría la lista de acceso?

Router

Interfaz

¿Permitir o denegar?

¿Filtro de entrada o de salida?

¿Por qué?

Router 2

Fa0/0

Denegar

Entrada

Esto descarta cualquier intento de envío desde la subred.

Paso 2: Limitar el acceso del cliente A al servidor A, pero permitir el acceso al servidor B y a Internet

Se le solicita que limite el acceso del cliente B al servidor A, pero el cliente B necesita acceso a Internet y al servidor B. ¿Dónde colocaría la lista de acceso?

Router

Interfaz

¿Permitir o denegar?

¿Filtro de entrada o de salida?

¿Por qué?

Router 1

Fa0/0

Denegar

Salida

Permite al cliente B acceder hasta el router 1, pero evita que pase al router dos donde está la subred del servidor A

Paso 3: Permitir que sólo el cliente A acceda a los routers solamente con el SSH

Se le solicitó asegurar el acceso a los routers sólo para el cliente A, que será la PC de administración para esos routers. Usted quiere limitar el acceso del cliente A a sólo el SSH y evitar el acceso a Telnet. ¿Dónde ubicaría la lista de acceso? Ayuda: Se necesita más de una interfaz para más de un router para controlar el SSH y el acceso a Telnet a los routers.

Router

Interfaz

¿Filtro de entrada o de salida?

Puerto

¿Permitir o denegar?

¿Por qué?

2

Fa0/0

Entrada

22

Permitir

Permite el paso del cliente A al router 2

2

Fa0/1

Salida

22

Permitir

Permite el paso del router 2 al switch

1

Fa0/0

Entrada

22

Permitir

Permite el paso del switch al router 1

1

Fa0/1

Salida

22

Permitir

Permite el paso del router 1 al otro switch

3

Fa0/1

Entrada

22

Permitir

Permite el paso del segundo switch al router 3

3

Fa0/0

Salida

22

Permitir

Permite el paso del router 3 a la subred donde está el cliente B para pruebas de conectividad

3

Fa0/0

Entrada

22

Denegar

Evita el paso del cliente B al router 3