Tercer parcial

abril 21, 2008

Ciclo While

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.

Sintáxis

inicializa varieble condición;
while (condición)
{
grupo de instrucciones;
instrciiones para salir del ciclo;
}; opciones

Ciclo Do-While

Su diferncia básica es que la prueba de condición está hecha al finalizar el ciclo, por consecuencia las instrucciones se ejecutan cuando menos una vez porque el primero ejecuta las instrucciones y al final evalúa la condición. Si la condición es verdadera vuelve a ejecutar el ciclo.

inicializa;
do{
grupo de instrucciones;
instrucciones para terminar el ciclo;
} while (condición);

Métodos

Conjuno de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas solo basta con referenciarlas a traves de dicho nombre en vez de tener que escribirlas.

Dentro de estas instrucciones es posible acceder con totral libertad la información a la almacenada en los campos, pertenecientes a la clase dentro de la que el método se ha definido por lo que los método permiten manipular los datos almacenados en los objetos.

Sintáxis

<tipo devuelto><nombre método>(<parámetros>)

{

instrucciones;

Ejercicio Método While y do while

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

namespace menu2
{
class Program
{
static void Main(string[] args)

{
do

int s
float resultado;
Console.WriteLine(”menu”);
Console.WriteLine(”a.suma”);
Console.WriteLine(”b.resta”);
Console.WriteLine(”c.multiplicación”);
Console.WriteLine(”d.división”);
char a = char.Parse(Console.ReadLine());
Console.WriteLine(”Dame un número”);
float b = float.Parse(Console.ReadLine());
Console.WriteLine(”Dame otro número”);
float c = float.Parse(Console.ReadLine());
switch (a)
{
case ‘a’:
resultado = b + c;
Console.WriteLine(”el resultado es ” + resultado);
break;
case ‘b’:
resultado = b – c;
Console.WriteLine(”el resultado es ” + resultado);
break;
case ‘c’:
resultado = b * c;
Console.WriteLine(”el resultado es ” + resultado);
break;
case ‘d’:
resultado = b / c;
Console.WriteLine(”el resultado es ” + resultado);
break;

default:
Console.WriteLine(”error”);
break;

}

Console.Writeline(“¿Deseas realizar la operación de nuevo?”);
Console.WriteLine(”1.SÍ”);
Console.WriteLine(”2.NO”);
int s = int.Parse(Console.ReadLine());

}while (s==1);

}
}
}

}

Tipo devuelto

todo método puede devolver un objeto como resultado de la ejecución de las instrucciones que lo forman aqui se indica el tipo de dato al que pertenece este objeto.

Si no devuleve nada, se indica void y si devuelve algo es obligatorio finalizar la ejecución de sus instrucciones con return<objeto>; que indica el objeto a devolverse.

Parámetros

Opcionalmente todo método puede recibir en cada llamada una lista de objetos a los que podrá acceder durante la ejecución de sus instrucciones aqui se indica cuales son los tipos de datos de éstos objetos y cual es el nombre con el que harán referencia las instrucciones del método a cada uno de ellos.

Aunque los objetos que pueda recibir el método, pueden ser diferentes cada vez que se solicite su ejecución, han de ser los mismos tipos y han de seguir el orden establecido en parámetros.

Sintáxis para llamr a los métodos de un objeto

<objeto>.<metodo>(<parámetros>)

Métodos Sobrecargados

En una misma clase pueden definirse siempre y cuando tomen diferente número o tipo de parámetros. Es posible ya que cuando se le llame al compilador sabra a cual llamar a partir de los parámetros basados en la llamada. No se puede repetir varios métodos que sólo se diferencien en su valor de retorno ya quecomo este no se debe indicar al llamarlos no pordría diferenciarse a que método en concreto se hace referencia en cada llamada:

Ejemplo:

Si además de versión del cumpleaños que no retorna nada ubiese otra que retornara un int como sabría entonces el complilador a cual llamar

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

Persona Andrés = new persona ();
Andres. cumpleaños ();

Persona Vicky new persona ();
Vicky. cumpleaños (10);

Persona Luis = new persona ();
Luis .cumpleaños (2.0);

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

Sintaxis nombre-clase nombre-objeto

Ejemplo: Circulo mi circulo

la declaración de un objeto simplemente asocia el objeto con una clase, haciendo 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 un circulo se necesta utilizar el operador new con el objeto para indicarle a la computadora que cree un objeto mi circulo y asigne espacio de memoria para el.

Acceso a datos y métodos:

Después de que se ha creado un objeto, se puede acceder a sus datos y métodos utilizando la notación siguiente:

nombreObjeto.datos Referencia a un dato del objeto

nombreObjeto.Método( ) Referencia a un método del objeto

Ejemplo:

miCirculo.radio Radio de mi círculo

miCirculo. CalcularSuperficie ( ) Devuelve la superficie de miCirculo

Utilización de un método

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

Una invocacción a un método es una petición al método para que se ejecute su acción y lo haga con el objeto mencionado.

La invocacción de un método se denomina también llamar a un método y pasar un mensaje a un objeto.

Existen dos tipos de métodos:

  • Los que devuelven un valor único (metodo ReadLine) devuelve un único valor de tipo string
  • Los que ejecutan alguna acción distinata de devolver un único valor que se denominan métodos void. Los métodos WriteLine realizan una acción distinta de devolver un valor único

LLamada o invocacción de un método

Se pueden realizar de dos formas dependiendo de que el método devuelva o no un valor

  1. Si el método devuelve un valor, la llamada al método se trata normalmente como un valor por ejemplo: Int mayor = Math. Max (3,4) LLama al método Max (3,4) y asigna el resultado del método 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 método Max (3,4)
  2. Si el método devuelve void, una llamada al método debe ser una sentencia. por Ejemplo: el método WriteLine() devuelve void. La siguiente llamada es una sentencia System.Console.WriteLine(“Sierra Tarahumara”); Si se considera a un objeto miCuenta de la clase cuenta corriente una invocación al método depositará miCuenta.Depositar (2400)

Excel

abril 14, 2008

Práctica 1

=24*A1

=60*B2

=60*B2*A2

Práctica 2

=A2-(A2*(B2/100))

Práctica 3

Suma =a1+a2+a3

%participación =a4*100/b6

f4*100/b6

Práctica 4

Si el promedio es mayor a 300, debe aparecer la palabra BUENO. En caso contrario…
Si el promedio es mayor a 200, debe aparecer la palabra REGULAR. En caso contrario debe aparece la palabra MALO.

FÓRMULA: =SI(B6>300,”BUENO”,(SI(B6>200,”REGULAR”)))

Referencias relativas y absolutas

con el signo de pesos va a indicar a la fórmula que el valor debe ser absoluto entonces al rellenar la fórmula hacia abajo se cambian los valores y no queda cero

Cambiar ancho de columnas

  • dar doble click en la parte de arriba de las celdas es decir entre B Y C POR EJEMPLO
  • dar click y arrastrar entre las cabeceras
  • ir al menu formato columna ancho y de forma numerica se cambiará el ancho

Formato de celdas: esta en la barra de herramientas

Menú excel preferencias: se le pueden quitar las lineas de división a la hoja de cálculo

Practica 5

Fórmula: =((+E4*100/$E$9)/100)

Práctica 6

Práctica 7

c#2

abril 8, 2008

¿Qué es programar?

  • Es hacer que la computadora obedezca una serie de instrucciones bien detalladas, usando un lenguaje de programación. Indicamos a la computadora qué tiene que suceder en cada momento, y cómo tiene que reaccionar ante la interacción del usuario.
  • Se conoce como programación de computadoras a la implementacion de un algoritmo a un determinado lenguaje de programacion, conformando un programa.
Programa

Concepto desarrollado por Von Neuman en 1946.
Unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar, que almacenan una información independiente de dicha secuencia maneja. Para ello se usa un lenguaje de programación que sirven para programar la secuencia de instrucciones requerida. Un programa esta formado por algoritmos y estructura de datos

Lenguaje de programación

Tiene un número limitado de símbolos y un número limitado de palabras. Constituido por un conjunto de reglas sintácticas y semánticas.

Sintacticas: se refiere a la especificación de la instrucción de instrucciones válidas
Semanticas: especifican el significado de estas instrucciones. La escritura o codificación del programa puede resultar una tarea sencilla si conocemos las reglas sintácticas y semánticas que constituyen el lenguaje de programación.

Antecedentes de C#

Desde los 70s hasta las fecha actual

La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que conseguir un lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes.

En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos), codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema.

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.
Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios 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. Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.

El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel.
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++.

La última variante que ha surgido de C es el moderno C#. En el año 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.

Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.

Elementos léxicos de un programa

  • Comentarios: Anotaciones para documentar el programa. Se utilizan de la siguiente forma.
// para comentar sobre un renglón
/*…*/ para comentar párrafos

  • Palabras Reservadas: Palabras que tienen un determinado significado para el compilador.
  • Identificadores: Nombres que los programadores dan a los diferentes elementos del programa. Las características que debe contener son las siguientes:
  1. Secuencia de letras, dígitos y caracteres.
  2. No deben coincidir con una palabra reservada.
  3. No deben empezar con un dígito.
  4. Son sensibles a mayúsculas y minúsculas.
  5. Se acostumbra a poner nombres significativos y que la primera letra de la palabra sea en mayúsculas.
  • Operadores y punteros: Los operadores indican las operaciones que se van a realizar y los punteros agrupan o separan. operadores + – * / % punteros { }
  • Literales: Valores constantes escritos directamente en el programa.
  • Directivas del preprocesador: Son instrucciones al compilador, comienzan con #

Sentencias y bloques

  • Sentencia: Representación de una acción o secuencia de acciones ejecutables (+ – * / ) o no ejecutables (declaraciones).
  • Bloque: Grupo de sentencias delimitadas por llaves { }

Método Main Es un punto de entrada al programa y la ejecución siempre inicia en el método main; debe tener las siguientes características:

  1. Declarado static en una clase o estructura
  2. Regresar void o int.
  3. Debe ser escrito con mayúscula la primera letra y minúscula lo demás.
  4. Puede no tener parámetros o recibir un arreglo de strings.

Using System;
namespace ConsoleApplication1
{
class Class1

{

Static void Main (string[]args)

{

//TODO: Se agrega código para la aplicación

}

}
}

Espacio de Nombres

Clasificación especial para usar un conjunto de clases y estructuras relacionadas, 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 nombnre en un espacio de nompres diferentes. Los espacios de nombres puedes ser predefinidos o definidos por el usuario.
El .net tiene clases en espacio de nombre predefinido, por ejemplo system Para definir un espacio de nombre se utiliza:

Namespace NombreEspacio
{

Clases del espacio de nombre

}

Clase:
Unidad básica de 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 símbolo de inicio y fin de un bloque para delimitar la codificación de sus miembros.

class NombreClase
{

Codificación de los miembros de la clase

}

Clase: Mesa (Conceptos generales) Se generan Objetos de esta clase (Características particulares de la clase) De la clse podemos tener subclases (Hervíboros)

Métodos para escribir datos

Un método es reconocido por tener paréntesis y por los parámetros que puede contener.
Los métodos usados para escribir datos en pantalla son:
1. Write escribe sin añadir el caracter de fin de línea de la cadena

2. WriteLine añade el caracter de fin de linea a la cadena de modo que lo siguiente que se escribe se colocará en la siguiente linea.

Console. write(“Hola”)

Console.WriteLine(“Pepe”)
Console.Write(“¿Cómo estás, “)

Console.WriteLine(” ¿bien?”)

Resultado

HolaPepe

¿Cómo estás, ¿bien?


Palabras reservadas

abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, lock, is, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, while.

Condicionales

También existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instrucción SWITCH.

VARIABLES
Esta instrucción es una instrucción de decisión múltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.
El formato de esta instrucción es el siguiente;

capturar o asignar variable de condición;
switch(var OPCION)
{
case const1: instrucción(es);
break;
case const2: instrucción(es);
break;
case const3: instrucción(es);
break; ………………
default: instrucción(es);break;
};

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:
</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>void EVENTO1 (Object sender, EventArgs e)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>int reng=1;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>LISTA.Items.Clear();</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>while(reng<=10)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{LISTA.Items.Add(reng.ToString()+” mama”);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>reng++;};</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>}</span><br /><span style=”font-weight: bold; font-family:arial;”>CICLO DO WHILE C# NET</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>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;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>También se le conoce por esta razón como ciclo de condición de salida.</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>Su formato general es :</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>—</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>cargar o inicializar variable de condición;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>do {</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>grupo cierto de instrucción(es);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>instrucción(es) de rompimiento de ciclo;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>} while (condición);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>—</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>prog15.aspx</span><br /><br /><br /><span style=”font-weight: bold; font-family:arial;”><html></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><form runat=”SERVER”></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><asp:listbox id=”LISTA” rows=”10″ runat=”SERVER”></ASP:LISTBOX></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><asp:button text=”OK” onclick=”EVENTO1″ runat=”SERVER/”><br /></span><br /><br /><span style=”font-weight: bold; font-family:arial;”></form></html></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><script language=”C#” runat=”SERVER”></span><br /><br /><span style=”font-weight: bold; font-family:arial;”>void EVENTO1 (Object sender, EventArgs e)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>int reng=1;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>LISTA.Items.Clear();</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>do</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{LISTA.Items.Add(reng.ToString()+” mama”);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>reng++; } while(reng<=10);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>}</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>

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
}
}

Como se ve en el ejemplo, las condiciones especificadas son nombres de identificadores de preprocesado, considerándose que cada condición sólo se cumple si el identificador que se indica en ella está definido. O lo que es lo mismo: un identificador de preprocesado vale cierto (true en C#) si está definido y falso (false en C#) si no.

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”);
}
}

Existen do métodos para leer datos, el primero sirve para leer solo un caracter, y el segundo lee una cadena completa de caracteres.

  1. variable=Console.Read();
  2. cadena= Console.Read();

Para guardar un dato dentro de una variable se ocupa la siguiente sintaxis:

tipo variable = tipo.Parse(Console.ReadLine());

  • Tipo: pueden ir int, char, float, Double.
  • Variable: nom 1,op
  • Pars: ayuda a transformar a estructura de datos

Estructuras de control: evaluan una o más alternativas y pueden ser bidireccional o multidireccional.

Instrucción inf (bidireccional) instruccional condicional más usada en los diversos lenguajes de programación, su sintaxis

if(condicional)   {      Grupo cierto de instrucciones;    }  else     {       grupo falso de instrucciones;      }

C#Prácticas

abril 8, 2008

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

namespace salvajedelaspraderas
{
class Program
{
static void Main(string[] args)
{
int i;
for (i = 0; i < 10; i++)
{
Console.WriteLine(“hola mundo”);
}
string a = Console.ReadLine();
}
}
}

Suma:

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

namespace Jus
{
class Program
{
static void Main(string[] args)
{
int Resultado;

Console.WriteLine(“Dame un número”);
int a = int.Parse(Console.ReadLine());

Console.WriteLine(“Dame otro número”);
int b =int.Parse(Console.ReadLine());

Resultado=a+b;
Console.WriteLine(“El resultado es ” + Resultado);

string a = Console.ReadLine();

}

}
}

100 veces:

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

namespace Adriana
{
class Program
{
static void Main(string[] args)
{
int i;
for (i=1; i=100;i++)

{
Console.WriteLine(i+”Frase”);
}

string a = Console.ReadLine();

}

}

}

Menú

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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int resultado;
Console.WriteLine(“menu”);
Console.WriteLine(“a.suma”);
Console.WriteLine(“b.resta”);
Console.WriteLine(“c.multiplicación”);
Console.WriteLine(“d.división”);
char a = char.Parse(Console.ReadLine());

switch (a)
{
case ‘a':
resultado = 5 + 5;
Console.WriteLine(“el resultado es ” + resultado);
break;
case ‘b':
resultado = 5 – 5;
Console.WriteLine(“el resultado es ” + resultado);
break;
case ‘c':
resultado = 5 * 5;
Console.WriteLine(“el resultado es ” + resultado);
break;
case ‘d':
resultado = 5 / 5;
Console.WriteLine(“el resultado es ” + resultado);
break;

default:
Console.WriteLine(“error”);
break;

}
string b = Console.ReadLine();

}
}
}

Switch:

menu
Console.WriteLine (“Menu”)
Console.WriteLine (“a. suma”)
” b. resta
” c. multiplicación
” d. división
break- hace que ya no sigan los otros casos.
tipo char porque son variables (letras)
char (donde se va a guardar (a)) que tipo es y parse
char a = char.Parse (Console.ReadLine());
Switch (a)
{case “a”: resultado = 5 + 5;
Console.WriteLine (“Resultado es”+resultado);IGUAL EN TODOS
break;
case “b”: resultado = 5-5; break;
caso “c”: resultado 5*5; break;
case “d”: resultado = 5/5;
break; default: Console.WriteLine (“error, o esa letra no existe”)}

C#

marzo 11, 2008

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

namespace chostosalvajedelaspraderas
{
class Program
{
static void Main(string[] args)
{
int i;
for (i = 0; i < 10; i++)
{
Console.WriteLine(“hola mundo”);
}
string a = Console.ReadLine();
}
}
}

Elementos léxicos de un programa

febrero 19, 2008

Elementos léxicos de un programa  

Comentarios: anotaciones para documentar el programa. Se utilizan de la siguiente forma

  • //para documentar sobre un renglón y
  • /*anotaciones */se utiliza para comentar párrafos, es decir más de un renglón 

palabras reservadas:  palabras que tienen un determinado significado para el compilador

Identificadores: nombres que los programadores dan a los diferentes elementos de un programa. La características que deben contener son las siguientes: 

  1. secuencia de letras, dígitos y caracteres 
  2. No deben coincidir con una alabra reservada 
  3. No deben emepezar con un dígito
  4. Son sensibles a mayúsculas y minúsculas  
  5. Se acostumbra poner nombres significativos y que la primera letra de la palabra sea en mayúsculas 

Ejemplo: SalarioMinimo. no se permite acentos y que las primeras sean con mayúsculas 

Operadores y Punteros : Los operadores indican las operaciones que se van a realizar y los punteros agrupan o separan+-*/%(operadores), Los que agrupan o separan son llaves (punteros)  

Líterales: Valores constantes escritos directamente en el programa 

Directivas del Pre-procesador:  Son instrucciones al compilador, comienzan con signo de # que son para ver las librerias y que es una instruccionan para el programador 

 Sentencias y Bloques 

 Sentencia: representación de una acción o secuencia de acciones ejecutables o no ejecutables que son cualquiera operación que haga y las no ejecutable “dame un número”, es decir, declaraciones  

Bloque:   Grupo de sentencias delimitadaspor llaves

 Método Main 

 Es un punto de entrada al programa y la ejecución simpre inicia en el método main. Debe tener las siguientes características:

 

  1.  Declarado static en una clase o estructura
  2. Regresar void o int 
  3. Debe ser escrito con mayúscula la primera letra y minúscula lo demás ç
  4. Puede no tener parametros o recibir un arreglo de strings. 

using system;

namespace ConsoleApplication1

{

  class Class1

  { 

     Static void main (string [ ] args)

     {

        // todo: se agrega al código para la aplicación

       }

{      } 

 

 Espacio de nombres

 Clasificación especial usada para agrupar a un conjunto de clases y estructuras relacionadas, 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 pre-definidos o definidos por el usuario.

El .net tiene clases en espacios de nombre pre-definidos, por ejemplo system, para definir un espacio de nombre se utiliza:

namespace NombreEspacio

{

   clases del espacio de nombres

}

Clase: Unida básica en la programación orientada a objetos. Todo programa en c# se organiza en clases que encapsula datos y comportamientos.

Una clase se construye con la palabra class seguida del nombre de la clase y el símbolo de inicio y fin de un bloque para delimitar la codificación de sus miembros

class  NombreClase

  {

     Codificación de los miembros de una clase

   }

 Métodos para escribir datos 

Un método es reconocido por tener paréntesis  y por los parámetros que puede contener. Los métodos usados para escribir datos en pantalla son: 

 Write: escribe sin añadir el caracter de fin de linea a la cadena 

WriteLine: sí añade el caracter de fin de linea a la cadena, de modo que lo siguiente que se escriba se colocará en la siguiente linea.  

EJ  Console Write ( ” Hola”); 

Console Write ( ” Hola”); Console Write (“Pepe”);Console Write (“¿Cómo estás,    “);Console WriteLine ( “¿bien?”);Resultado en consola:HolaPepe¿Cómo estás,    ¿bien?   

 Lenguaje de programación

 El lenguaje de programación Tiene tres herramientas escenciales: la declaración y uso de variables, ciclos y condicionales      

 

TIPO DE VARIABLES

Declaración de Variables

+ Declaración Sencilla
tipo_variable nombre_variable;
+ Declaración Multiple
tipo_variable nombre_variable1, nombre_variable2, … nombre_variablen;
NOTA: No se pueden utilizar variables no inicializadas.
Una variable puede inicializarse al momento de ser declarada, ejemplo:
 intmiEntero=0; o puede inicializarse después en el código, ejemplo:
 intmiEntero; miEntero = 2;

A toda variable que se use en un programa, se debera declarar de preferencia al principio del programa.

En C# NET (tambien se le conoccomo C# ) existen los siguientes tipos de variables:

C# Tipo .Net Framework (System) type Signed? Bytes enRam Rango
sbyte System.Sbyte Yes 1 -128 a 127
short System.Int16 Yes 2 -32768 a 32767
int System.Int32 Yes 4 -2147483648 a 2147483647
long System.Int64 Yes 8 -9223372036854775808 a 9223372036854775807
byte System.Byte No 1 0 a 255
ushort System.Uint16 No 2 0 a 65535
uint System.UInt32 No 4 0 a 4294967295
ulong System.Uint64 No 8 0 a 18446744073709551615
float System.Single Yes 4 Aprox. ±1.5 x 10-45 a ±3.4 x 1038 con 7 decimales
double System.Double Yes 8 Aprox. ±5.0 x 10-324 a ±1.7 x 10308 con 15 o 16decimales
decimal System.Decimal Yes 12 Aprox. ±1.0 x 10-28 a ±7.9 x 1028 con 28 o 29 decimales
char System.Char N/A 2 Cualquier caracter Unicode
bool System.Boolean N/A 1 / 2 true o false

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 objetoderivado de esa clase, por ejemplo System.Float alfa = new System.Float(); para este caso observar y tener en cuenta doscosas:

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 elconcepto 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.

 

 Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.


 CICLOS 

 

 

En C SHARP NET este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando seconoce 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 (;)

 

 Instrucciones Condicionales


Las instrucciones condicionales o de selección se utilizan para determinar que código se debe ejecutar y cuándo se debe ejecutar. C# incluye dos instrucciones de selección la instrucción if que ejecuta código en base a una condición lógica y la instrucción switch que ejecuta código con base en un valor, pero debes tomar en cuenta que al utilizar la instrucción switch, puede especificar que se devuelva un valor numérico y una o más partes de código, que se ejecutarán dependiendo del resultado de la expresión.

Instrucción IF

            Si la(expresión)

                        hacer esto…

            de lo contrario

                        hacer esto otro…

 

EjemplO:

            if( i== 0 )

                        Console.WriteLine(“No ahi datos”);

            else

                        Console.WriteLine(“Si ahi datos”);

 

Instrucción SWITCH

            Compara(variable)

                        caso variable=1:   hacer esto…

                                                   terminar

                        caso variable=2:   hacer esto…

                                                   terminar

                        caso no_coincidio: hacer esto…

                                                   terminar

Ejemplo:

            switch(i)

            {

                        case 0: Console.WriteLine(“No hubo inscritos”);

                                    break;

                        case 1: Console.WriteLine(“Si hubo inscritos”);

                                    break;

                        default: Console.WriteLine(“No se introdujo un numero valido”);

                                     break;

            }

 

PROGRAMACIÓN EN C#

febrero 18, 2008

PROGRAMACIÓN EN C#

 Programar es Que tienen que suceder en cada momento y cómo debe reaccionar ante la interacción del usuario. Se conoce a la programación de computadoras a la implementación de un resultado en un determinado lenguaje de programación conformando un programa.  Programación de un programa concepto desarrollado por Von Neumann desarrollado en 1946Unió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 instrucciones que dicha secuencia maneja.  Para ello se usan lenguajes de programación que sirven para programar la secuencia de instrucciones requeridasSegún Niklaus Wirth un programa está formado por algoritmos y estructura de datos  Lenguje de programación  Tiene un número limitado de símbolos y también un número limitado de palabras, constituido por un conjunto de reglas sintácticas y semánticas.

  1.  Sintácticas se refieren  a la especificación de la formación de instrucciones válidad
  2. Semánticas especifican el significado de éstas instrucciones  
La escritura o codificación del programa  puede resultar una tarea sencilla si conocemos las reglas sintácticas y semánticas que constituyen el lenguaje de programación 
 

Antecedentes de C# 

 

Predecesor(es)                      Año    Nombre                              Desarrollador principalCompañía


POP-1 1970 POP-2
ALGOL 60 1971 Pascal Niklaus WirthKathleen Jensen
Pascal, XPL 1971 Sue Holt y otros en la Universidad de Toronto
SIMULA 67 1972 Smalltalk-72 Xerox PARC
B, BCPL, ALGOL 68 1972 C Dennis Ritchie
* 1972 INTERCAL
2-level W-Grammar 1972 Prolog Alain Colmerauer
Pascal, BASIC 1973 COMAL Børge ChristensenBenedict Løfstedt
Pascal, Sue 1973 LIS Ichbiah y otros en CII Honeywell Bull
BASIC 1974 GRASS Tom DeFanti
Business BASIC 1974 BASIC FOUR BASIC FOUR CORPORATION
LISP 1975 Scheme Gerald Jay SussmanGuy L. Steele, Jr.
Pascal 1975? Modula Niklaus Wirth
BASIC 1975 Altair BASIC Bill GatesPaul Allen
ALGOL 68, BLISS, ECL, HAL 1975 CS-4 Benjamin M. Brosgol en Intermetrics
Smalltalk-72 1976 Smalltalk-76 Xerox PARC
C, FORTRAN 1976 Ratfor Brian Kernighan
* 1977 FP John Backus
* 1977 Bourne Shell (sh) Stephen Bourne
Fortran 1977 IDL David Stern de Research Systems Inc
MUMPS 1977 Standard MUMPS
SNOBOL 1977 ICON(concepto) Ralph Griswold
ALGOL 68, LIS 1977 Green Ichbiah y otros en CII Honeywell Bull para el Departamento de Defensa de los Estados Unidos
ALGOL 68, CS-4 1977 Red Benjamin M. Brosgol y otros en Intermetrics para el Departamento de Defensa de los Estados Unidos
ALGOL 68, 1977 Blue Goodenough y otros en SofTech para el Departamento de Defensa de los Estados Unidos
ALGOL 68, 1977 Yellow Spitzen y otros en SRI International para el Departamento de Defensa de los Estados Unidos
FORTRAN IV 1978 FORTRAN 77
Modula 1978? Modula-2 Niklaus Wirth
* 1978? MATLAB Moler en la Universidad de Nuevo Mexico
Algol60 1978? SMALL Dr. Nevil Brownlee en la Universidad de Auckland
* 1978 VISICALC Dan BricklinBob Frankston en VisiCorp
PL/I, BASIC, EXEC 2 1979 REXX Mike Cowlishaw
C, SNOBOL 1979 Awk AhoWeinbergerBrian Kernighan
SNOBOL 1979 ICON(implementación) Ralph Griswold
* 1979 Vulcan dBase-II Ratliff

1980s 

C, SIMULA 67 1980 C con Clases Bjarne Stroustrup
Smalltalk-76 1980 Smalltalk-80 Xerox PARC
Smalltalk, C 1982 Objective-C Brad Cox
Green 1983 Ada 83 Departamento de Defensa de los Estados Unidos
C con Clases 1983 C++ Bjarne Stroustrup
BASIC 1983 True BASIC John George KemenyThomas_Kurtz en Dartmouth College
sh 1984? Korn Shell (ksh) Dave Korn
* 1984 Standard ML
dBase 1984 CLIPPER Nantucket
LISP 1984 Common Lisp Guy Steele y muchos otros
1977MUMPS 1985 1984 MUMPS
dBase 1985 PARADOX Borland
Interpress 1985 PostScript John Warnock
BASIC 1985 QuickBASIC Microsoft
1986 Miranda David Turner en la Universidad de Kent
1986 LabVIEW National Instruments
SIMULA 67 1986 Eiffel Bertrand Meyer
1986 Informix-4GL Informix
C 1986 PROMAL
Smalltalk 1987 Self (concepto) Sun Microsystems Inc.
* 1987 HyperTalk Apple Computer
* 1987 SQL-87
C, sed, awk, sh 1987 Perl Larry Wall
MATLAB 1988 Octave
dBase-III 1988 dBase-IV
Awk, Lisp 1988 Tcl John Ousterhout
REXX 1988 Object REXX Simon Nash
Ada 1988 SPARK Bernard A. Carré
Turbo Pascal 1989 Turbo Pascal OOP Borland
C 1989 Standard C89/90 ANSI X3.159-1989 (adopted by ISO in 1990)
Modula-2 1989 Modula-3 Cardeli, y otros
Modula-2 1989 Oberon Niklaus Wirth

1990s 

Oberon 1990 Object Oberon Niklaus Wirth
APL, FP 1990 J Kenneth IversonRoger Hui en Iverson Software
Miranda 1990 Haskell
1984 MUMPS 1990 1990 MUMPS
Fortran 77 1991 Fortran 90
Object Oberon 1991 Oberon-2 Niklaus Wirth
ABC 1991 Python Van Rossum
1991 Q
QuickBASIC 1991 Visual Basic Alan Cooper en Microsoft
SQL-87 1992 SQL-92
Turbo Pascal OOP 1992 Borland Pascal
ksh 1993? Z Shell (zsh)
Smalltalk 1993? Self (implementación) Sun Microsystems Inc.
Forth 1993 FALSE Oortmerrsen
FALSE 1993 Brainfuck Urban Müller
HyperTalk 1993 Revolution Transcript
HyperTalk 1993 AppleScript Apple
APL, Lisp 1993 K Whitney
Smalltalk, Perl 1993 Ruby
1993 Lua Roberto Ierusalimschy y otros en Tecgraf, PUC-Rio
C 1993 ZPL Chamberlain y otros en Universidad de Washington
Lisp 1994 Dylan muchos en Apple Computer
Ada 83 1995 Ada 95 ISO
Borland Pascal 1995 Delphi Anders Hejlsberg en Borland
1995 ColdFusion Allaire
C, SIMULA67 ó C++, Smalltalk 1995 Java James Gosling en Sun Microsystems
1990MUMPS 1995 1995 MUMPS
Self, Java 1995? LiveScript Brendan Eich en Netscape
Fortran 90 1996 Fortran 95
APL, Perl 1996 Perl Data Language (PDL) Karl GlazebrookJarle BrinchmannTuomas Lukka, and Christian Soeller
REXX, Java 1996 NetREXX Cowlishaw
LiveScript 1997? JavaScript Brendan Eich en Netscape
SML 84 1997 SML 97
PHP 3 1997 PHP
Scheme 1997 Pico Universidad Libre de Bruselas
Smalltalk-80, Self 1997 Squeak Smalltalk Alan Kayy otros en Apple Computer
JavaScript 1997? ECMAScript ECMA TC39-TG1
C++, Standard C 1998 Standard C++ ANSI/ISO Standard C++
Prolog 1998 Erlang Open Source Erlang en Ericsson
Standard C89/90 1999 Standard C99 ISO/IEC 9899:199

2000s

C, C++, Java, Eiffel 2000 D Walter Bright en Digital Mars
C, C++, Delphi, Java 2000 C# Anders Hejlsberg en Microsoft (ECMA)


Permisos

febrero 18, 2008

PERMISOS

Existen tres tipos de permisos:

  1. Lectura r
  2. escritura w
  3. ejecución x
Se pueden aplicar a los archivos y a los directorios
En el caso de los archivos el de lectura se puede leer o no un archivo, y con escritura se puede modificar su contenido, con el de ejecución se puede correr el archivo es decir si es un programa se puede correr o no.
con los directorios en lectura se puede leer el directorio con escritura se puede modificar su contenido y con el de ejecición se pueden efectuar búsquedas dentro de él.
En Unix se pueden encontrar tres tipos de usuarios
  1. Dueño
  2. Grupo
  3. Todos los demás

L502:~ alumno$ ls -l la primer c0lumna habla de los permisos
d directorio
– : archivo
rwx: permisos del dueño
rwx: permisos del grupo
rwx: permisos de todos los demás
Lectura escritura ejecución: para c/u el valor máximo es 7
r w x valor r w x
- - - 0 0 0 0
- - si 1 0 0 1
- si - 2 0 2 0
- si si 3 0 2 1
si - - 4 4 0 0
si - si 5 4 0 1
si si - 6 4 2 0
si si si 7 4 2 1
Ejemplo:
Un archivo que tiene un modo 764 es un archivo en el que:
El dueño tiene permiso de lectura escritura y ejecución
El Grupo tiene permiso de lectura y escritura
Todos los demás sólo tinen permiso de lectura
Cuales son las características de un archivo cuyo modo es 540
El dueño puede leer y ejecutar
El grupo puede leer
todos los demás no pueden hacer nada
Puedes cambiar los permisos con
chmod modo nombre de archvio: L502:~ alumno$ chmod 000 cel.txt
chmod 600 cel.txt

SCRIPTS

Secuencia de comandos almacenados en un archivo que el sistema operativo puede ejecutar adicionalmente a los comandos un script puede contener variables, condicionables, y cualquier otra herramienta de un lenguaje de programación.Un script puede ser escrito en un editor de textos como por ejemplo nano.En cualquier caso el script debe comenzar con la siguiente linea: #!/bin/bash

Esto sirve para indicarle a unix que el archivo es un script, Que puede ser ejecutado y que será enviado a esa dirección para poder ser ejecutado.
Para ejecutar un script se debe escribir ./ antes del nombre del archivo o script

PRÁCTICA 1

1. ¿Qué tipos de permisos existen?

  1. Lectura r
  2. escritura w
  3. ejecución x

2. ¿Qué tipos de perfiles de usuario existen?

  1. Dueño
  2. Grupo
  3. Todos los demás

3. ¿Con qué letra identificamos a un directorio al escribir el comando ls -l? la letra d4. ¿Qué permisos están asignados en los siguientes modos? a) 600 El dueño tiene lectura escritura y ejecución, el grupo y todos los demás no tienen permiso de nada b) 514 El dueño tiene permiso de lectura y ejecución el grupo tiene permiso de ejecución y todos los demás solo de lecturac) 677 El dueño tiene permiso de lectura y escritura el grupo tiene permiso lectura escritura y ejecuciónal igual que todos los demás d) 766 l dueño tiene permiso de lectura y escritura y ejecución el grupo y todos los demás de lectura y esciturae) 333 El dueño el grupo y todos los demás tinenen permiso de escritura y ejecición5. ¿Qué modo tiene el archivo en cuyos permisos el dueño sólo puede leer y ejecutar, el grupo sólo modificar y todos los demás leer y ejecutar? 6256. ¿Qué modo tiene el archivo en cuyos permisos el dueño sólo puede leer, el grupo midificar y ejecutar y todos los demás sólo ejecutar? 4317. ¿Cuál es la sintáxis del comando chmod? chmod modo nombre del archivo 8. ¿Qué hacen los siguientes comandos? a) cd .. lleva al directorio previob) bc es una calculadorac) cd / nos lleva al disco duro d) ls -l > lista.txt muestra permisos del archivo e) chmod 606 file.txt: cambiar los permisos 9. ¿Para qué sirve el caracter * (asterisco)? sustituir una cadena de caracteres10. ¿Para qué sirve el comando find?

buscar un archivo según su jerarquía

PRÁCTICA 2

1. Haga un script dentro de nano que realice lo siguiente: a) Limpie la pantalla b) Despliegue el contenido del directorio de trabajo actual usando ls -l c) Haga un archivo cuyo contenido sea la palabra Hola, y que se guarde en el directorio de trabajo actual bajo el nombre uno.txt d) Haga un archivo cuyo contenido sea la palabra amigo, y que se guarde en el directorio de trabajo actual bajo el nombre de dos.txt e) Concatene (una, junte) los dos archivo previos en un tercero que tenga el nombre de su grupo y sección, por ejemplo 601a.txt (Este paso es indispensable para validar la práctica 2) #!/bin/bash clear

ls -lecho hola > uno.txtecho amigo > dos.txtcat uno.txt dos.txt > 602b.txt

 

PRÁCTICA 3

Dentro de nano, escriba el siguiente scrip y ejecútelo en la terminal. Después, describa en su blog lo que hace. #!/bin/sh line1=”The queen, my lord, is dead.” line2=”She should have died hereafter.” echo “SEYTON: $line1″ echo “MACBETH: $line2″ Al ejecutar el script en la terminal lo que sucedió fue que las lineas de un diálogo que no sabías quien lo decía, al inicio se colocó el nombre de quien lo dijo

L502:~ alumno$ nano
L502:~ alumno$ chmod 700 jeje
L502:~ alumno$ ./jeje
SEYTON: The queen, my lord, is dead.
MACBETH: She should have died hereafter.
L502:~ alumno$

PRÁCTICA 4

#!/bin/sh # Algo de matematicas x=24 y=4 Result=`expr $x \* $y` echo “$x veces $y es $Result”

L502:~ alumno$ nano
L502:~ alumno$ chmod 700 yuyi
L502:~ alumno$ ./yuyi
24 veces 4 es 96

Secure Shell

Es un programa que perite la conexión de una computadora remota.
La sintaxis para usar secure shell es ssh usuario@computadora
En donde el usuario es la sesión a la que nos vamos a conectar y la computadora es la ip asignada a la misma Ejemplo: ssh darwin@192.10.2.250
L502:~ alumno$ ssh darwin@192.10.2.250
Password: Darwin
Last login: Thu Mar 6 08:58:26 2008 from 192.10.2.115
Welcome to Darwin!
L5Maestro:~ darwin$
Who : para ver todos los que en este momento están conectados a lacomputadora
L5Maestro:~ darwin$ who am i: Para saber que ip es mi computadora
darwin ttypc Mar 6 08:58 (192.10.2.116)
Exit: para salir de la computadora remota

(SFTP) Secure File Transfer Protocol

Es un programa que nos permite trasferir archivos desde o hacía una compurtadora remota, La sintáxis de la computadora es sftp usuario@computadora

L502:~ alumno$ sftp darwin@192.10.2.250: te conectaste cn esa máquina
Connecting to 192.10.2.250…
Password:
sftp>

sftp> get leer.txt: es para obtener un archivo desde otra computadora leer.txt es el nombre del archivo, lo copia al lugar donde estaba trabajando

Put para copiar o colocar archivos de mi computadora a otra

PRÁCTICA 5

1. Haga un archivo de texto que contenga en el primer renglón su nombre y, en el segundo, su grupo. Guárdelo con el nombre de su grupo y número de lista, por ejemplo 60120.
2. Conéctense al servidor Darwin usando SFTP y coloque su archivo en el escritorio de esta computadora.

L502:~ alumno$ nano
L502:~ alumno$ sftp darwin@192.10.2.250
Connecting to 192.10.2.250…
Password:
sftp> put 60217.txt
Uploading 60217.txt to /Users/darwin/60217.txt
60217.txt 100% 15 0.0KB/s 00:00
sftp>

Práctica 6

cierra todos los programas abiertos de la compu del prof:

Last login: Mon Mar 10 10:21:18 on console
Welcome to Darwin!
L502:~ alumno$ ssh darwin@192.10.2.250

Password:
Password:
Last login: Mon Mar 10 10:25:46 2008 from 192.10.2.135
Welcome to Darwin!
L5Maestro:~ darwin$ ps -U darwin
PID  TT  STAT      TIME COMMAND
64  ??  Ss     0:02.83 /System/Library/Frameworks/ApplicationServices.framew
295  ??  Ss     0:00.55 /System/Library/CoreServices/loginwindow.app/Contents
305  ??  S      0:00.61 /System/Library/CoreServices/RemoteManagement/ARDAgen
311  ??  Ss     0:00.30 /System/Library/CoreServices/pbs
316  ??  S      0:01.03 /System/Library/CoreServices/Dock.app/Contents/MacOS/
317  ??  S      0:01.81 /System/Library/CoreServices/SystemUIServer.app/Conte
319  ??  S      0:02.74 /System/Library/CoreServices/Finder.app/Contents/MacO
324  ??  S      0:05.67 /System/Library/PreferencePanes/UniversalAccessPref.p
580  ??  S      0:00.03 /usr/sbin/sshd -i
829  ??  S      0:00.06 /System/Library/Services/AppleSpell.service/Contents/
1082  ??  S      0:05.65 /Applications/Address Book.app/Contents/MacOS/Address
1103  ??  S      0:00.05 /usr/sbin/sshd -i
1123  ??  S      0:00.07 /usr/sbin/sshd -i
1132  ??  S      0:00.01 /usr/sbin/sshd -i
1149  ??  SNs    0:00.71 /System/Library/Frameworks/CoreServices.framework/Ver
1156  ??  S      0:00.10 /usr/sbin/sshd -i
1171  ??  S      0:00.10 /usr/sbin/sshd -i
1177  ??  S      0:26.12 /Applications/Safari.app/Contents/MacOS/Safari -psn_0
1104  p2  Ss+    0:00.03 -bash
1124  p3  Ss+    0:00.06 -bash
1133  p4  Ss     0:00.02 -bash
1157  p5  Ss+    0:00.06 -bash
1172  p6  Ss+    0:00.06 -bash
581  pb  Ss+    0:00.03 -bash
L5Maestro:~ darwin$ kill 1082
L5Maestro:~ darwin$ open /Applications/Address Book.app
2008-03-10 10:36:58.778 open[1207] No such file: /Applications/Address
L5Maestro:~ darwin$ open /Applications/Address Book.app
2008-03-10 10:37:25.764 open[1218] No such file: /Applications/Address
L5Maestro:~ darwin$ open /Applications/Safari.app
L5Maestro:~ darwin$

Autenticación

febrero 8, 2008
**CUESTIONARIO

1.- ¿Qué es autenticación?

Llamamos autentificación a la comprobación de la identidad de una persona o de un objeto. Es por consecuente, el acto de establecimiento o confirmación de algo (o alguien) como auténtico, es decir que reclama hecho por, o sobre la cosa son verdadero. La autenticación de un objeto puede significar(pensar) la confirmación de su procedencia, mientras que la autenticación de una persona a menudo consiste en verificar su identidad. La autenticación depende de uno o varios factores de autenticación.

2.-¿Qué requieren las opciones de autenticación?

El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticación es la existencia de identidades biunívocamente identificadas con un identificador único (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la más común una sucesión de caracteres conocida comúnmente como login.

El proceso general de autenticación requiere que:

  1. El usuario solicite acceso a un sistema.
  2. El sistema solicite al usuario que se autentique.
  3. El usuario aporte las credenciales que le identifican y permitan verificar la autenticidad de la identificación.
  4. El sistema valide según sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no.


3.- ¿Cuántos tipos de protocolos para la autenicación existen en PPP y cuales son?

Los más importantes son:

  • 0×800 para IP.
  • 0xc021 para LCP.
  • 0xc023 para PAP.
  • 0xc223 para CHAP.

 

4.- ¿Cuál protocolo es el de preferencia y por qué?

El protocolo CHAP, ya que verifica periódicamente la identidad del cliente remoto usando un intercambio de información de tres etapas basado en un secreto compartido (como una contraseña).

CHAP protege contra los ataques de REPLAY mediante el uso de un identificador que se va incrementando y una valor de desafío variable. CHAP requiere que el cliente mantenga el secreto disponible en texto plano.

La definición de este protocolo se encuentra en la RFC 1994. 

Es un método de autenticación mas seguro que PAP. CHAP ofrece protección contra ataques externos mediante el uso de un valor de desafió variable que es único e indescifrable.  Esta repetición de desafíos limita la posibilidad de ataques.

5.- ¿En qué nivel se ejecuta la autenticación?

El nivel de enlace (del inglés data link level) que es el segundo nivel del modelo OSI. Recibe peticiones del nivel de red y utiliza los servicios del nivel físico.

 El objetivo del nivel de enlace es conseguir que la información fluya, libre de errores, entre dos máquinas que estén conectadas directamente (servicio orientado a conexión).

6.- ¿Por qué PAP no es un protocolo sólido?

PAP no es un método de autenticación sólido porque las contraseñas se envían en modo abierto y no existe protección contra el registro de las mismas o los ataques externos.

 

7.-¿Cómo es el proceso de autenticación CHAP y descríbelo?

La contraseña es encriptada utilizando MD5, una vez establecido el enlace el router agrega un mensaje desafió que es verificado por ambos routers, si ambos coinciden se acepta la autenticación de lo contrario la conexión se cierra inmediatamente.

 

8.-Escribe los pasos de forma breve para configurar la autenticación PPP

 

Configuración de PPP con CHAP

Defina el nombre de usuario y la contraseña que espera recibir del router remoto:

Router(config)#username[nonbre del remoto] password[contraseña del remoto]

Puede usar el mismo nombre de host en multiples routers cuando quiera que el router remoto crea que esta conectado a un solo router
Para activar la encapsulación PPP con autenticación CHAP en una interfaz se debe cambiar la encapsulación en dicha interfaz serial, el tipo de autenticación el nombre con el que el router remoto reconocerá el local, la contraseña con la que hará el desafió el router local y la dirección IP:
Router(config-if)#encapsulation PPP
Router(config-if)#ppp authentication chap
Router(config-if)#ip address [direccion IP+mascara]
Router(config-if)#no shutdown

Para autenticarse frente a un host desconocido debe configurar en la interfaz correspondiente la contraseña que sera enviada a los host que quieran autenticar al router. Tambien sirve para limitar la cantidad de entradas en el router.

Router(config-if)#ppp chap password[contraseña]

Configuración de PPP con PAP

Defina el nombre de usuario y la contraseña que espera recibir del router remoto:

Router(config)#username[nonbre del remoto] password[contraseña del remoto]
Para activar la encapsulación PPP con autenticación PAP en una interfaz se debe cambiar la encapsulación en dicha interfaz serial, el tipo de autenticación y la dirección IP:
Router(config-if)#encapsulation PPP
Router(config-if)#ppp authentication pap
Router(config-if)#ip address [direccion IP+mascara]
Router(config-if)#no shutdown

 

 

Acumulador

enero 22, 2008
ACUMULADOR
 

El valor del acumulador en una suma es 0 y cuando es para un producto es 1 a esto se le llama valores de inicializació.

Se le llama batería eléctrica, acumulador eléctrico o simplemente acumulador, al dispositivo que almacena energía eléctrica usando procedimientos electroquímicos y que posteriormente la devuelve casi en su totalidad; este ciclo puede repetirse por un determinado número de veces. Se trata de un generador eléctrico secundario, es decir, de un generador que no puede funcionar sin que se le haya suministrado electricidad previamente mediante lo que se denomina proceso de carga.

También se le suele denominar batería puesto que, muchas veces, se conectan varios de ellos en serie, para aumentar el voltaje suministrado. Así la batería de un automóvil está formada internamente por 6 elementos acumuladores del tipo plomo-ácido, cada uno de los cuales suministra electricidad con una tensión de unos 2 V, por lo que el conjunto entrega los habituales 12 V o por 12 elementos, con 24 V para los camiones.

 

CONTADOR

 

cont=valor

cont= cont +valor

un contador (counter en inglés) es un circuito secuencial construido a partir de biestables y puertas lógicas capaz de realizar el cómputo de los impulsos que recibe en la entrada destinada a tal efecto, almacenar datos o actuar como divisor de frecuencia. Habitualmente, el cómputo se realiza en un código binario, que con frecuencia será el binario natural o el BCD natural (contador de décadas).

Existen diversos tipos de contadores:

  • Contadores de rizado.
  • Contadores paralelos.
  • Contadores de rizado mod-6.
  • Contador Johnson. Activa una sola salida entre varias. En respuesta al pulso de conteo, la salida siguiente pasa a ser la activa. No se emplea un contador binario seguido de un decodificador debido a que, al conmutar entre dos estados, podría producir pulsos espúrios en otras salidas. El 4017 es un contador johnson de 10 estados.

“Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Los incrementos son generalmente de uno en uno.”

 

 


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.