domingo, 2 de agosto de 2009

Estructuras de Datos - Arrays o Arreglos.

Introducción.

Todas las variables que se han considerado hasta ahora son de tipo simple. Una variable de tipo simple consiste de una sola caja de memoria y sólo puede contener un valor cada vez.

Una variable de tipo estructurado consiste en toda una colección de casillas de memoria.

Los tipos de datos estudiados: entero, real, alfabético son considerados como datos de tipo simple o datos primitivos, puesto que una variable que se define con alguno de estos tipos sólo puede almacenar un valor a la vez, es decir, existe una relación de uno a uno entre la variable y el número de elementos (valores) que es capaz de almacenar.

En cambio un dato de tipo estructurado, como el arreglo, puede almacenar más de un elemento (valor) a la vez, con la condición de que todos los elementos deben ser del mismo tipo, es decir, que se puede tener un conjunto de datos enteros, reales, etc.

Datos estructurados:

Estructura de Datos es una colección de datos que se caracterizan por su organización y las operaciones que se definen en ella. Los datos de tipo estándar pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas.

Estructura de Datos estáticas:
Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa. Corresponden a este tipo los arrays y registros

Estructuras de Datos Dinámicas:
Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución. Corresponden a este tipo las listas, árboles y grafos . Estas estructuras no son soportadas en todos los lenguajes. La elección de la estructura de datos idónea dependerá de la naturaleza del problema a resolver y, en menor medida, del lenguaje. Las estructuras de datos tienen en común que un identificador, nombre, puede representar a múltiples datos individuales.

Arrays:

Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común.

Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array.

Un arreglo es una colección finita, homogénea y ordenada de elementos.

Finita:Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo.

Homogénea:Todos los elementos del arreglo deben ser del mismo tipo.

Ordenada:Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo elemento.

Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:

Unidimensionales (vectores o Listas)
Bidimensionales (tablas o matrices)



Multidimensionales (cubos)


Arreglos Unidimensionales:

Están formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la posición que tiene cada elemento dentro del arreglo de datos.

Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre único y la cantidad de elementos que va a contener. Por ejemplo, las siguientes instrucciones declaran tres arreglos distintos:



Para acceder a valores específicos del arreglo, use un valor de índice que apunte al elemento deseado.

Por ejemplo, para acceder al primer elemento del arreglo calificaciones debe utilizar el valor de índice 0 (calificaciones[0]). Los programas en C# siempre inician el primer elemento de un arreglo con 0 y el último con un valor menor en una unidad al tamaño del arreglo.

Inicialización y asignación de valores.

Como se decía anteriormente, antes de utilizar un arreglo es necesario inicializarlo:
Calificaciones[0];

Para inicializar todos los elementos de una vez, se colocan dentro de una estructura for que va del primer elemento al último que contiene el arreglo. Para asignar un valor a un elemento del arreglo se hace por ejemplo:
Calificaciones[0] = 100;

Cuando se usan arreglos, una operación común es usar una variable índice para acceder a los elementos de un arreglo. Suponiendo que la variable índice I contiene el valor 3, la siguiente instrucción asigna el valor 400 a valores[3]:
valores[I] = 400;

Partes de un arreglo:

El componentes. Hacen referencia a los elementos que forman el arreglo, es decir, a los valores que se almacenan en cada una de las casillas del mismo.

Los índices. Permiten hacer referencia a los componentes del arreglo en forma individual, especifican cuántos elementos tendrá el arreglo y además, de qué modo podrán accesarse esos componentes.



Definición de Arreglos:

tipo_dato[ ] identificador_arreglo = new tipo_dato [dimensiones];

Las operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema son:

Lectura/ escritura.
Asignación.
Actualización(inserción, eliminación, modificación).
Recorrido (acceso secuencial).
Ordenación.
Búsqueda.

Ejemplos:


Sea lunes un arreglo de 70 elementos enteros. Su representación nos queda:

int[] lunes = new int[70]



Lectura.
El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos. Normalmente se realizan con estructuras repetitivas, aunque pueden usarse estructuras selectivas.

Usamos los índices para recorrer los elementos del arreglo:

desde i = 1 hasta 70 hacer
---> leer (lunes[i])
fin_desde

Escritura:
Es similar al caso de lectura, sólo que en vez de leer el componente del arreglo, lo escribimos.

leer (N)
desde i = 1 hasta N hacer
--->escribir (lunes[i])
fin_desde

Asignación:
No es posible asignar directamente un valor a todo el arreglo; sino que se debe asignar el valor deseado en cada componente. Con una estructura repetitiva se puede asignar un valor a todos los elementos del vector.

Por ejemplo:
lunes[1] = 120
(asignación de un valor constante único a una casilla del vector)

lunes[3] = lunes[1] / 4
(asignar una operación)

Se puede asignar un valor constante a todos los elementos del vector:

desde i = 1 hasta 5 hacer
--->lunes[i] = 3
fin_desde

Inicialización:
Para inicializar con cero todos los elementos del arreglo:

desde i = 1 hasta 70 hacer
--->lunes[i] = 0
fin_desde



Acceso Secuencial. (Recorrido)
El acceso a los elementos de un vector puede ser para leer en él o para escribir (visualizar su contenido). Recorrido del vector es la acción de efectuar una acción general sobre todos los elementos de ese vector.

Actualización.
Incluye añadir (insertar), borrar o modificar algunos de los ya existentes. Se debe tener en cuenta si el arreglo está o no ordenado. Añadir datos a un vector consiste en agregar un nuevo elemento al final del vector, siempre que haya espacio en memoria.

Investigue cómo insertar o eliminar elementos en un arreglo:
a) Ordenado
b) No ordenado

REDES DE COMPUTADORAS II

Bienvenidos a todos los estudiantes que serán participes del proceso de enseñanza aprendizaje de la asignatura Redes II.

RETROSPECTIVA DEL CONOCIMIENTO REDES II
CUESTIONARIO PARA ESTUDIANTES

[Diseñado por: Ing. Fredy Jordán C.]


A través de un mapa conceptual, exponga el propósito y la finalidad de cada capa del protocolo TCP/IP.?

Realizar un informe con fotografías donde se construyan cable de red cruzado y directo. (documento de texto).?

Con el cable de red cruzado, implemente una red con Windows XP, y comparta un directorio con 3 archivos de texto, un archivo de música y una imagen (.jpg), documentar dicha práctica con fotografías.?

Interprete y explique el siguiente grafico.




Conteste:

Que es una dirección IP.?
Indique la diferencia entre una dirección IP Estática y Dinámica.?
Complete el siguiente cuadro:



Realice una matriz comparativa para los siguientes términos: internet, intranet y extranet.?

Que es una masca de subred, indique las mascaras por defecto de cada clase de red.?

Implemente una analogía entre los protocolos TCP y UDP.?

Desarrolle los siguientes ejercicios.


Calcular la dirección de red y dirección de broadcasting de las máquinas con las siguientes direcciones IP y máscaras de subred (si no se especifica, se utiliza la máscara por defecto):

18.120.16.250
18.120.16.255 / 255.255.0.0
155.4.220.39
194.209.14.33
190.33.109.133 / 255.255.255.0

Suponiendo que nuestro ordenador tiene la dirección IP 192.168.5.65 con máscara 255.255.255.0, indicar qué significan las siguientes direcciones especiales:

0.0.0.0
0.0.0.29
192.168.67.0
255.255.255.255
192.130.10.255
127.0.0.1

Calcular la dirección de red y dirección de broadcasting de las máquinas con las siguientes direcciones IP y máscaras de subred:

190.33.109.133 / 255.255.255.128
192.168.20.25 / 255.255.255.240
192.168.20.25 / 255.255.255.224
192.168.20.25 / 255.255.255.192
140.190.20.10 / 255.255.192.0

Viendo las direcciones IP de los hosts públicos de una empresa observamos que todas están comprendidas entre 194.143.17.145 y 194.143.17.158, ¿Cuál es (probablemente) su dirección de red, broadcasting y máscara? Realizar los cálculos respectivos.

Se dispone de la siguiente dirección de red 135.34.57.99, se desea segmentarla en por lo menos 12 subredes. Calcular:


Dirección de red.
Mascara de Subred por defecto.
Número máximo de host y de subredes.
Desarrolle una tabla de direcciones IP hasta la 5 subred.
Dirección de Broadcast.

Utilizando Packet Tracer implemente las siguientes practicas:


Una VLAN entre dos departamentos.
Dos Redes y dos Routers.
Tres Redes y tres Routers.

El diseño físico y lógico queda a criterio de los alumnos. Desarrolle un documento donde explique paso a paso la implementación de las prácticas con sus respectivas pantallas.


Acreditación:


El presente trabajo escrito será el 25 % de la nota final del primer parcial de la asignatura.

La evaluación individual del trabajo será la nota frecuente del primer parcial de la asignatura.

martes, 28 de julio de 2009

Estructura Decisión Multiple.

Materia: Lógica y Lenguaje de Programación 1.
Profesor: Ing. Fredy Jordán C. Esp.

Objetivos de la Publicación:

Los alumnos y alumnas serán capaces de:

Comprender las estructuras selectivas múltiples y resolver problemas usando dichas estructuras.

Elaborar algoritmos para dichas estructuras.

ESTRUCTURAS SELECTIVAS MÚLTIPLES.

Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.

Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.

Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.

La sentencia que se utiliza para este fin es Switch, que ejecuta una de las alternativas (la que cumpla la condición) siempre y cuando el resultado de la evaluación lógica sea verdadero.

La sentencia switch es especialmente útil cuando la selección se base en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.

El valor de esta expresión puede ser de tipo int o char, pero no de tipo float ni double o string.

Cada posible respuesta es un valor único, constante y diferente de los otros. Además debe ser del mismo tipo que la evaluación lógica.

Si se quiere considerar un proceso para un resultado falso utilizamos la instrucción Default, que es el valor por omisión. Dado que cada uno de los casos puede contener varias expresiones debemos indicarle al compilador que el caso ha terminado y que debe salir del ciclo de selección, para este fin utilizamos la instrucción break.

Esta hace que siga la ejecución en la siguiente sentencia al switch.

El ciclo Switch debe estar agrupado entre llaves, la llave para abrir ( { ) se escribe después de la evaluación lógica y la llave para cerrar ( } ), se escribe después del último caso.

switch ( [Evaluación Lógica] )
{
case ( [ posible respuesta 1 ] ) :
Expresión(es);
break;

case ( [ posible respuesta n ] ) :
Expresión(es);
break;

default:
Expresión(es);
break;
}

Si el valor selector no está listado en ninguna etiqueta case, no se ejecutará ninguna de las opciones a menos que se especifique una acción por defecto (omisión).

Aunque esta etiqueta default es opcional, se recomienda su uso a menos que se esté absolutamente seguro de que todos los valores del selector estén incluidos en las posibles respuestas del case.

Resolver los siguientes Ejercicios.


La empresa FAFI S.A. tiene la siguiente tabla de parámetros para pagar las comisiones de sus ejecutivos de ventas:



Escriba un programa que al introducir la cantidad vendida por el ejecutivo de ventas, calcule de cuánto será su comisión.

______________________________________________________

En base al valor de dos números enteros, determine si estos son:
A. Iguales.
B. No iguales.
C. El primero es mayor que el segundo.
D. El segundo es mayor que el primero.
E. El primero es mayor o igual que el segundo.
F. El segundo es mayor o igual que el primero.

______________________________________________________

Un restaurante, desea dar a conocer a sus clientes el plato que se ha preparado para cada uno de los tiempos de comida desayuno, almuerzo y cena. El restaurante prepara un plato único para cada uno de los tiempos. Cuando el cliente seleccione entre los tiempos de comida (desayuno, almuerzo o cena) se debe desplegar el detalle de este.
Ejemplo:
Seleccione su tiempo de Comida: desayuno
Detalle
Plátanos, Frijoles, Queso, Crema, Pan y Café.

______________________________________________________

Elabore un programa que pida dos números y que permita mostrar un menú con las cuatro operaciones básicas, donde el usuario pueda seleccionar la operación que desea realizar (basta con que seleccione el número).

Estructura Decisiones Simples y Dobles.

Materia: Lógica y Lenguaje de Programación 1.
Profesor: Ing. Fredy Jordán C. Esp.

Objetivo:
Al finalizar la práctica, los estudiantes serán capaces de:

Comprender las estructuras selectivas y resolver problemas usando dichas estructuras.

Elaborar algoritmos para estructuras selectivas simples y dobles.

Estructuras Selectivas o Decisiones:

Estas estructuras se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deben realizarse o no.

Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo:
(if – then – else o en español si – entonces - caso_contrario).

Las estructuras selectivas o alternativas se clasifican en:

Simples
Dobles
Compuestas
Múltiples

Estructuras selectivas simples.

Se identifican porque están compuestos únicamente de una condición.

La estructura si – entonces evalúa la condición y en tal caso: Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa, entonces no se hace nada.

Si pregunta entonces

---->Acciones por el Verdadero

Fin_Si

Ejemplo:

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 6.

Algoritmo: Calificacion-Alumno
Inicio
Entero: cal
Escribir("Ingrese la Calificacion:")
Leer (cal)
Si cal > 6 entonces
Escribir (“aprobado”)
Fin_si
Fin

Estructuras de Selección Doble.

Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.

Si pregunta entonces

---->Acciones por el Verdadero

Caso_Contrario

---->Acciones por el Falso

Fin_Si

Ejemplo:

Dado como dato la calificación de un alumno en un examen, escriba “aprobado” si su calificación es mayor que 8 y “Reprobado” en caso contrario.

Algoritmo: Calificacion-Alumno
Inicio
Entero:Cal
Escribir("Ingrese la Calificacion: ")
Leer (Cal)
Si cal > 8 entonces
Escribir (“aprobado”)
Caso_Contrario
Escribir (“reprobado”)
Fin_si
Fin

Resolver Los siguientes Ejercicios.

Nota: Los presente ejercicios serán resuelto por los estudiantes y evaluados.

Dado como dato el sueldo de un trabajador, aplicar un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario, luego imprimir el nuevo sueldo del trabajador.

Determinar si un número es negativo. Hazlo:
(a)con dos si.
(b)con un si-caso_contrario.

Determinar si un número es mayor que 35. Hazlo:
(a)con dos si.
(b)con un si-caso_contrario.

Determinar si un numero es positivo y menor que 100.

Determinar si un número pertenece al intervalo [-3,27].

Determinar si un número no pertenece al intervalo [25,50].

Determinar si el módulo de un número es menor que 15. No puedes usar la función valor absoluto.

Determinar si un entero es impar (lo será cuando el resto de su división por 2 sea distinto de cero).

Eleve al cuadrado un número si es par y al cubo si es impar.

Calcule el máximo de 2 números dados.

Calcule el máximo de tres números.

Dados dos números, muestre si uno de ellos es múltiplo del otro. Supón que se da primero el número mayor.
Indicación: uno será múltiplo del otro si el resto de la división de un por otro es cero.

Que calcule el gasto de agua en una vivienda dado el número de litros gastados, siendo el sistema de cobro:
la cuota fija mensual es de 6 dolares.
los primeros 50 litros son gratis (opción 1)
entre 50 y 200 litros se cobra el litro a 0.1 dolares (opción 2)
a partir de 200 litros se cobra el litro a 0.3 dolares (opción 3)
Indicación: hazlo con tres si, uno por cada opción.

Leer dos números enteros positivos y determinar si el último dígito de un número es igual al último dígito del otro.

Leer un número entero y determinar si es negativo.

Leer un número entero de dos dígitos y determinar a cuánto es igual la suma de sus dígitos.

Leer un número entero de dos dígitos y determinar si ambos dígitos son pares.

Dado un número introducido por el usuario, indicar si éste es positivo, negativo o nulo. Resuélvelo usando estructura selectiva simple.

Calcular el mayor de dos números leídos del teclado y visualizarlo en pantalla. Utiliza la forma si – cso_contrario.

Escriba un programa que pida un número y a continuación escriba si es par o impar usando la instrucción modulo.

Calcular el promedio de calificaciones de un alumno. Las dos primeras notas valen 30%cada una y la tercera 40%. Si el promedio es mayor o igual a 7 imprimirá aprobado, de lo contrario dirá reprobado. Si el promedio es igual a 10, dirá alumno excelente. Se desea imprimir el nombre del alumno, código de la materia y el promedio obtenido.

domingo, 26 de julio de 2009

Programas en C#.

Materia: Lógica y Lenguaje de Programación 1.
Profesor: Ing. Fredy Jordán C. Esp.

Bueno aqui dejo el código de algunos programas sencillos en C# Modo consola, analízalos.

Area de un rectangulo.

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

class Program
{
static void Main(string[] args)
{
float Base;
float Altura;
float Area;
Console.WriteLine("Area de un Regtangulo");
Console.WriteLine();
Console.WriteLine("ingrese la base");
Base=float.Parse(Console.ReadLine());
Console.WriteLine("Ingrese la altura");
Altura=float.Parse(Console.ReadLine());
Console.WriteLine();
Console.WriteLine();
Area = Base * Altura;
Console.WriteLine("El rectangulo de base {0} y altura {1} tiene un area
de {2}", Base, Altura, Area);
Console.ReadLine();
}
}

__________________________________________________________

Conversor de Pies a Metros

static void Main(string[] args)
{
//segun google 1 pie = 0,3048 metros
//1 metro = 3,2808399 pies
float Pie;
float Metro;
float Medida;
Medida=3.280839F;
Console.WriteLine("Conversor de medidas");
Pie = float.Parse(Console.ReadLine());
Metro = Pie * Medida;
Console.WriteLine("{0} Pies es igual a {1}",Pie ,Metro);
Console.ReadLine();
}

__________________________________________________________

Sumatoria de los N primeros numeros pares [Sin estructura repetitiva]

class Program
{
static void Main(string[] args)
{
int NPares;
int Sumatoria;
Console.WriteLine("Sumatoria de los N primeros Numeros Pares");
Console.WriteLine("Ingrese N");
NPares=int.Parse(Console.ReadLine());
Sumatoria = NPares*(NPares + 1);
Console.WriteLine("La sumatoria de los primeros {0} numeros pares es
{1}",NPares, Sumatoria );
Console.ReadLine();
}
}

__________________________________________________________

Calcular el factorial de un número ingresado por teclado.

Para los que no lo sepan: Factorial (n!) = 1*2*3*4...*n-1*n

class Program
{
static void Main(string[] args)
{
long contador=1;
Console.WriteLine("Programa para calcular n!");
Console.Write("N = ");
int numero = int.Parse(Console.ReadLine());
for (int i = 2; i <= numero; i++)
{
contador *= i;
}
Console.WriteLine("n! = {0}", contador);
Console.Read();
}
}

__________________________________________________________

Un programa con sentncia de selección multiple (switch)...

class Program
{
static int[] Edades = new int[20];

static void Main(string[] args)
{
int op;
string leido;
do
{
Console.Clear();
Console.WriteLine("1. Almacenar Datos");
Console.WriteLine("2. Recuperar Datos");
Console.Write("Elige una opcion:");
op = int.Parse(Console.ReadLine());
switch (op)
{
case 1: {
Console.WriteLine("Introduce 20 edades: ");
for (int x = 0; x < 20; x++)
{
Edades= int.Parse(Console.ReadLine());
}
break;
}
case 2: {
Console.WriteLine("Las edades introducidas fueron: ");
for (int x = 0; x < 20; x++)
{
Console.WriteLine(Edades);
}
break;
}
default: Console.Write("Opcion incorrecta");
break;
}
Console.Write("Desea salir?: s/n");
leido = Console.ReadLine();
} while (leido != "s");
Console.ReadKey();
}
}
}
}

Fundamentos Básicos de C Sharp Parte 1 [ Entrada y Salida de Datos].

Materia: Lógica y Lenguaje de Programación.
Profesor: Ing. Fredy Jordán C. Esp.

Entrada y Salida
Los programas de C# utilizan normalmente los servicios de entrada y salida que ofrece la biblioteca en tiempo de ejecución de .NET Framework.

La instrucción Console.WriteLine("Hola Buenos Dias..!"); utiliza el método WriteLine, que es uno de los métodos de salida de la clase Console de la biblioteca en tiempo de ejecución.

Muestra el parámetro cadena en la secuencia de salida estándar seguido por una nueva línea. Otros métodos de Console se utilizan para otras operaciones de entrada y salida.

Dentro de la Biblioteca de clase del .Net Framework se encuentra la Clase Console,que representa las secuencias de entrada, salida y error estándar para las aplicaciones de modo consola en C#.

La Clase Console, dispone de los siguientes métodos:

SetCursorPosition(X,Y)---> Permite posicionarte en una coordenada especifica en pantalla.

Read( ) --> Lee los datos que ingresa el usuario a través del Teclado con formato texto.

ReadLine( )--> A diferencia del método anterior lee y salta una línea.

Write( )--> Escribe los datos ya sea de una(Cadena caracteres o variable) en pantalla.

WriteLine( )--> A diferencia del método anterior escribe en pantalla y salta una línea.

Clear( )--> Borra o limpia pantalla.

En este ejemplo de código se muestra la forma de leer y escribir en las secuencias de entrada y salida estándar.

public static void Main(string[] args)
{
Console.Write("Hola..");
Console.WriteLine("Mundo!");
Console.WriteLine("What is your name: ");
String nombre = Console.ReadLine();
Console.Write("Buenos Dias, ");
Console.Write(nombre);
Console.WriteLine("!");
}

viernes, 17 de julio de 2009

Sistemas Operativos Avanzados.

Tema: Programación Bat o por Lotes <---> Tarea para los Estudiantes.
Institución Educativa: F.A.F.I - Escuela de Sistemas.


Implemente un programa BAT, que me permita solicitar la edad de una persona y determinar si es mayor o menor de edad.

Desarrolle un archivo BAT, que me permita simular un sistema de autentificación de usuario y determine mediante ETIQUETAS o FUNCIONES si el acceso es correcto o incorrecto, si es correcto que ejecute la calculadora de windows caso contrario ejecute el explorador de windows.

Implementar un Programa BAT, que permita eliminar todos los archivos temporales de mi PC, como un sistema de mantenimiento.

Analice los siguientes programas he indique que acción realiza cada una de las líneas de código del programa:

Caso A.
@echo off
cd\
cd OMEGASYS
IF EXIST proforma.doc GOTO ARCHIVO
Goto end
:ARCHIVO
ECHO ARCHIVO
:end

Caso B.
IF EXIST c:\windows\nul ECHO c:\Windows existe


Realizar un programa BAT, me visualice 3 navegadores y el usuario seleccione cual ejecutar.
Internet Explorer
Mozilla
Opera

Nota: la presente tarea revisara y se evaluara en la fecha indicada por el TUTOR..

Sistema Operativo Avanzado

Tema: Programación Bat o por Lotes. (Parte 1)
Institución Educativa: F.A.F.I - Escuela de Sistemas.

Qué se puede hacer con un programa BAT.
Se puede hacer de forma automatizada todo aquello que se pueda hacer en la consola de msdos. Se pueden ejecutar programas, enviar y recibir parámetros y automatizar tareas.

Como crear un programa BAT.
Pues son texto plano. Quiere eso decir que se pueden escribir en el block de notas, utilidad Edit de msdos o algún editor ascii.

Al guardarlos deben tener la notación de nombres propia de msdos. Esto es un nombre con máximo 8 letras (espacios y \ no permitidos), luego un punto y la extensión que en este caso es obligatoriamente BAT (para compatibilidad con todas las versiones windows) o CMD (a partir de Windows 2000).

Redirección de entrada/salida.
Pues al igual que en unix se puede hacer que la salida de un comando sirva como entrada de otro. Cada proceso tiene ya predeterminados sus dispositivos de entrada y salida. Mediante la redirección podemos cambiar eso.

DISPOSITIVO SALIDA.
CON --->Salida por la pantalla
PRN --->Salida por la impresora por defecto
LPT1--->Salida por la 1º impresora en paralelo
COM1--->Salida por el primer puerto serie
COM2--->Salida por el segundo puerto serie

Ejercicios de Ejemplos:
Ejercicio No.001
Tengo 3 maquinas en red y necesito un BAT que haga un ping a cada máquina para saber el estado de las mismas (encendido/apagado).¿como puedo hacer que el PING devuelva solo llegue o no llegue, en lugar de las 8 lineas de siempre?

Código:

@echo off
echo "Comprobando el primero ..." >test
ping 100.9.56.1 -n 1 >>test
echo "--------------------------------" >>test
echo "Comprobando el segundo ..." >>test
ping 100.9.56.2 -n 1 >>test
echo "--------------------------------" >>test
echo "Comprobando el tercero ..." >>test
ping 100.9.56.3 -n 1 >>test
echo " ------------- fin -------------" >>test


Ejercicio No.002
Código para cargar un archivo determinado.

@echo off
cls
c:
rem cargamos un archivo .txt
start carta.doc
rem cargamos un archivo de imagen jpg
start carnet.jpg


COMANDO IF
Sirve para hacer bifurcaciones en el código. Admite 6 sintaxis distintas:

IF EXIST nombre_fichero ORDEN
(si existe nombre_fichero ejecutar la orden especificada en ORDEN)

IF NOT EXIST nombre_fichero ORDEN
(igual, pero si no existe el fichero)

IF cadena1 == cadena2 ORDEN
(si cadena1 es igual a cadenado2 ejecutar la orden especificada en ORDEN)

IF NOT cadena1 == cadena2 ORDEN
(si cadena1 es distinta de cadena2 hacer orden )

IF ERRORLEVEL número ORDEN
(si el comando anterior acabó con un código de error es igual o superior a número hacer orden )

IF NOT ERRORLEVEL número ORDEN
(si el comando anterior acabó con un código de error inferior a número )

VARIABLES DE ENTORNO.
Para asignar a una variable, el valor de algo escrito por el usuario, puedes usar:

set /P variable=
Ejemplo:

Código:
@echo off
echo ¿Como te llamas?
set /P miva=
echo Tu te llamas %miva%

Ejecución:
C:\Viernes>variables.cmd

¿Como te llamas?
Juan
Tu te llamas Juan


Para hacer calculos matematicos, se usa el modificado /A, de esta forma:
Ejemplo:

Código:
@echo off
set /A x=1
echo %x%
set /A x=x*9
echo %x%