Archivo de la categoría ‘Computación’
Parámetros en C# – Por referencia
Supongamos ahora que queremos definir un método que intercambie el valor de sus dos argumentos. De acuerdo con el ejemplo anterior, sería hacer lo siguiente:
using System;
class Parametros {
static void Main () {
int a = 2;
int b = 3;
Console.WriteLine (“a = {O}, b = {1}”, a, b);
Intercambia (a, b);
Console.WriteLine (“a = {O}, b = {1}”, a, b);
}
static void Intercambia (int a, int b) {
int temp = a;
a = b;
b = temp;
} }Sin embargo, nos veremos contrariados al comprobar que el programa no ejecuta ninguna acción:
a = 2, b = 3
a = 2, b = 3
Lo que ha pasado es que las operaciones que hemos realizado con las variables dentro del método Intercambia o no han tenido efecto. Pese a que nosotros hemos asignado nuevos valores que intercambiaban los antiguos, todo ha seguido como al principio. Lo que ocurre es que el método no altera el valor de las variables originales, ya que trabaja sobre una copia de éstas. Precisamente esto es lo que se soluciona con la llamada por referencia de parámetros. Si cambiamos la definición del método por:static void Intercambia (ref int a, ref int b) {
…
}
y si, por consiguiente, lo invocamos incluyendo las palabras clave ref.
Intercambia (ref a, ref b);
el resultado ahora sí es el deseado:
a = 2, b = 3
a = 3, b = 2
Al introducir ref como prefijo de invocación dé los parámetros, evitamos el efecto que comentábamos al principio. Por lo tanto, lo que hagamos sobre las variables en el método, afecta a las variables originales.
También te puede interesar:Programación Orientada a Objeto (POO)
El propósito de un programador es construir productos que satisfagan al máximo de las necesidades de sus clientes. Actualmente existen muchas técnicas para lograr este objetivo, cada una con sus ventajas y desventajas.
A través de la programación estructurada se pueden unir secuencias de declaraciones e instrucciones en un mismo lugar. La inclusión de procedimientos hace a los programas estructurados y con menos posibilidad de errores.
La Programación Orientada a Objeto (POO) permite construir aplicaciones mas estables y de mayor tamaño. La estructura es organizada por los datos. Primero se seleccionan las representaciones de los datos que mejor cumplen los requerimientos para luego decidir que hacer con ellas.
El objeto es algo con características o propiedades que se pueden ver, tocar y habrán una serie de acciones que describen su funcionabilidad.
La clase es la construcción del lenguaje mas utilizado para definir los tipos de datos.
Los métodos son las funciones asociadas a un objeto especifico.
El mensaje es una petición de un objeto para la invocación de uno de sus métodos. Un mensaje contiene el nombre de un objeto o los argumentos del método.
La Propiedad o característica es una asignación que describe algo sobre un objeto como un formulario.
También te puede interesar:Entrada y Salida de datos
Una operación de E/S se define como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos).
El subsistema de ENTRADA/SALIDA (E/S) suministra al computador un mecanismo eficiente de comunicación entre el procesador central y el entorno exterior.
La conexión de dispositivos periféricos a un computador no puede llevarse a cabo de forma directa haciendo uso del bus del procesador, esta restricción es debida fundamentalmente a tres razones importantes:
– Existe una gran variedad de dispositivos con distintos modos de operación.
– El ritmo de transferencia de datos es, en casi todos los casos, mucho menor que hay entre la CPU y la memoria principal
.– En ocasiones, el periférico requiere que los datos le sean suministrados en formatos distintos al utilizado por la CPU.
La Interfaz de E/S de las aplicaciones es la que define el modelo de E/S que ven los usuarios, por lo que cuando se diseña el Sistema Operativo se debe tener en cuenta decisiones relativas a la funcionalidad que se va ha ofrecer al exterior: Nombres Independientes de los Dispositivos, E/S No Bloquean o Asíncronas, Control de Acceso a Dispositivos, Indicadores de Error y Uso de Estándares.
Para la realización de una operación de E/S el sistema operativo debe efectuar las siguientes funciones:
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.).
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos, conversión serie/paralelo, etc.Las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida son las siguientes:
- Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
- Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
- Sincronización y coordinación de las operaciones.
Esta última función es necesaria debido a la diferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes).
Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones:
- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionará las líneas de control necesarias.
También te puede interesar: