lunes, 24 de mayo de 2010

Area y Perimetro de un circulo

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA26PmMQvRSeh2FY6Fpee_8JjD8Ao1BQZ1ZkoaWj6g_O6VhtbEirWxadXQBNFBbD9I9SSTwJPTAi3xwJal1rzD7zYCgd7qC1udUtfI3-Adf7MV1j7fmPwQ63WVwLWj2yTUNGKAanEMXjo/s1600/circulo.bmp

Linea 3 class Circulo es la declaracion de la clase
Linea 4 se declara un metodo para nuestra clase al abrir un llave {
Linea 5 y 10 son declaraciones de metodos
Linea 19 crea objeto
Linea 6 a 9 y 11 a 14 son funciones
Linea 20 C.Area(r) es la invocacion al metodo Area dentro de la clase Circulo.
linea 20
es (int r) linea 5 , es decir, el valor que ingreso el usuario en linea 18
Linea 21 C.Perimetro (r*2) es la invocacion al metodo Perimetro dentro de la classe Circulo
(r*2) linea 21 es (int d) linea 10, es decir, el valor qu ingreso el usuario multiplicado por dos.
'
El programa empieza a correr a partir de la linea 15 e inmediatamente pide al usuario que de un radio. El numero que el usuario ingrese se guardara en la variable r. El tipo de dato que aceptara sera de tipo int
Posteriormente en la linea 19 el programa invoca a la clase Circulo y crea un nuevo objeto, es decir, un nuevo circulo. mediante esa invocacion a la clase circulo el programa ejecuta la linea 3, ya que en esa linea se declaro un clase llamada Circulo. De la linea 6 a la 9 se ejectua una funcion. La funcion indica que se multiplicara el valor de 3.1416 por el radio que ingreso el usuario elevado al cuadrado. La instruccion return de la linea 8 indica al programa que mande el resultado a la linea 20 y esta a su vez lo imprimira en la pantalla del usuario.
Posteriormente se ejecuta la funcion que se encuentra en las lineas 11 a 14 que multiplica el diametro por el valor de 3.1416. La instruccion return de la linea 13 manda el resultado a la linea 21 que imprimira el resultado al usuario.

miércoles, 21 de abril de 2010

Practica 1


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

Programacion orientada a objetos

Programación Orientada a Objetos:

La POO es un paradigma de programación que intenta abstraer los módulos de cada programa en objetos. Los objetos son instancias de clases, en las que se declaran/especifican al menos dos cosas: los atributos, los métodos y opcionalmente los constructores.

Los atributos son las variables que posee el objeto, mientras que los métodos son las funciones o procedimientos que podemos invocar para realizar operaciones especí­ficas sobre los atributos.

Como en Java, en C Sharp utilizamos siempre clases y objetos, aún cuando no tengamos claro el concepto. Por ejemplo, el simple hola mundo:

1using System;
2class Hola{
3 static void Main(string[] args){
4 Console.WriteLine("Hola parce!");
5 }
6}

En cada lí­nea de código estamos usando la programación orientada a objetos: lí­nea 1, creamos una clase (llamada Hola); lí­nea 2, declaramos un método (función) para nuestra clase; lí­nea 3, usando la clase Console invocamos el método WriteLine. Todo, programación orientada a objetos.

Objeto:

Los objetos son construcciones de programación que se componen de datos, comportamiento e identidad. Los datos del objeto se encuentran en los campos, propiedades y eventos del objeto; los métodos e interfaces del objeto definen los comportamientos del objeto.

Los objetos tienen identidad, es decir, dos objetos con el mismo conjunto de datos no son necesariamente el mismo objeto.

En C#, los objetos se definen mediante classes y structs, que conforman el plano único a partir del cual operan todos los objetos de ese tipo.

Los objetos tienen las propiedades siguientes:

  • Todo lo que se utiliza en C# es un objeto, incluidos los formularios Windows Forms y los controles.

  • Se crean instancias de objetos; es decir, éstos se crean a partir de plantillas definidas por clases y estructuras.

  • Los objetos utilizan propiedades para obtener y cambiar la información que contienen.

  • A menudo, los objetos tienen métodos y eventos que les permiten realizar acciones.

  • Visual Studio proporciona herramientas para manipular objetos: la propiedades (ventana) permite cambiar los atributos de los objetos, como formularios Windows Forms. El examinador de objetos permite examinar el contenido de un objeto.

  • Todos los objetos de C# heredan de object.

Campo:

Un campo es una variable de cualquier tipo que se declara directamente en una clase o estructura. Los campos son miembros de su tipo contenedor.

Una clase o estructura puede tener campos de instancia, campos estáticos o ambos. Los campos de instancia son específicos de una instancia de un tipo. Si tiene una clase T, con un campo de instancia F, puede crear dos objetos de tipo T y modificar el valor de F en cada objeto sin afectar al valor del otro objeto. Por el contrario, un campo estático pertenece a la propia clase y se comparte entre todas las instancias de dicha clase. Los cambios realizados en la instancia A serán inmediatamente visibles en las instancias B y C si tienen acceso al campo.

Por regla general, solo debe utilizar campos para variables con accesibilidad privada o protegida. Los datos que la clase expone al código de cliente se deben proporcionar a través de métodos, propiedades e indizadores. Si se utilizan estas construcciones para el acceso indirecto a campos internos, se establece una protección ante valores de entrada no válidos. Un campo privado que almacena los datos expuestos por una propiedad pública se denomina dispositivo de copia de seguridad o campo de respaldo.

Habitualmente los campos almacenan los datos a los que deben tener acceso más de un método de clase y que se deben almacenar durante más tiempo que el período de duración de un único método. Por ejemplo, una clase que representa una fecha del calendario podría tener tres campos enteros: uno para el mes, otro para el día y un tercero para el año. Las variables que no se utilizan fuera del ámbito de un único método se deben declarar como variables locales dentro del propio cuerpo del método.

Los campos se declaran en el bloque de clase especificando el nivel de acceso del campo, seguido por el tipo de campo y después por el nombre del mismo. Por ejemplo:

public class CalendarEntry
{
// private field
private DateTime date;

// public field (Generally not recommended)
public string day;

// Public property exposes date field safely.
public DateTime Date
{
get
{
return date;
}
set
{
if(value.Year > 1980 || value.Year <= 2008) { date = value; } else
throw new ArgumentOutOfRangeException();
}

}

// Public method also exposes date field safely.
public void SetDate(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);

if (dt.Year > 1980 || dt.Year <= 2008) { date = dt; } else
throw new ArgumentOutOfRangeException();
}

public TimeSpan GetTimeSpan(string dateString)
{
DateTime dt = Convert.ToDateTime(dateString);

if (dt != null && dt.Ticks < style="color:Blue;">return date - dt;
}
else
throw new ArgumentOutOfRangeException();

}
}


Para obtener acceso a un campo en un objeto, agregue un punto después del nombre de objeto, seguido del nombre del campo, como en objectname.fieldname. Por ejemplo:

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


Se puede proporcionar un valor inicial a un campo utilizando el operador de asignación cuando se declara el campo. Para asignar automáticamente al campo day el valor "Monday", por ejemplo, declararía day como en el ejemplo siguiente:

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

Los campos se inicializan inmediatamente antes de llamar al constructor para la instancia de objeto. Si el constructor asigna el valor de un campo, sobrescribirá cualquier valor dado durante la declaración del campo.

Los campos se pueden marcar como public, private, protected, internal o protected internal. Estos modificadores de acceso definen cómo pueden tener acceso a los campos los usuarios de la clase.

Un campo puede declararse de forma opcional como static. Esto hace que el campo esté siempre disponible para los llamadores, aunque no exista ninguna instancia de la clase.

Un campo puede declararse como readonly. Solo es posible asignar un valor a un campo de tipo readonly durante la inicialización o en un constructor. Un campo staticreadonly es muy similar a una constante, excepto en que el compilador de C# no tiene acceso a él en tiempo de compilación, solo en tiempo de ejecución.

Método:
Un método es un bloque de código que contiene una serie de instrucciones. Los programas hacen que las instrucciones se ejecuten mediante una llamada al método y la especificación de los argumentos de método necesarios. En C#, cada instrucción se ejecuta en el contexto de un método. El método Main es el punto de entrada de cada aplicación C# al que llama Common Language Runtime (CLR) cuando se inicia el programa.

Los métodos se declaran en una clase o estructura mediante la especificación del nivel de acceso como public o private, modificadores opcionales como abstract o sealed, el valor devuelto, el nombre del método y cualquier parámetro de método. Todos esos elementos constituyen la firma del método.

Los parámetros del método se encierran entre paréntesis y se separan por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro. Esta clase contiene tres métodos:

abstract class Motorcycle
{
// Anyone can call this.
public void StartEngine() {/* Method statements here */ }

// Only derived classes can call this.
protected void AddGas(int gallons) { /* Method statements here */ }

// Derived classes can override the base class implementation.
public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; }

// Derived classes must implement this.
public abstract double GetTopSpeed();
Función:
En programación orientada a objetos (POO), una función virtual o método virtual es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO.
En .POO, cuando una clase derivada hereda de una clase base, un objeto de la clase derivada puede ser referido (o coercionado)tanto como del tipo de la clase base como del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase derivada, aparece un problema cuando un objeto derivado ha sido cohercionado como del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el comportamiento de la llamada a la función deseado es ambiguo
Procedimiento:
Son unidades de código compuestas por una o más sentencias y que son almacenados en el servidor.

miércoles, 24 de marzo de 2010

lunes, 1 de marzo de 2010

int
la palabra clave int denota un tipo integral que almacena valores según el tamaño

string

El tipo string representa una secuencia de cero o más caracteres Unicode. string es un alias de String en .NET Framework.

Aunque string es un tipo de referencia, los operadores de igualdad (== y !=) se definen para comparar los valores de objetos string, no las referencias. De esta forma, es más intuitivo comprobar la igualdad entre cadenas.

short

La palabra clave short denota un tipo de datos integral que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.


long
La palabra clave long denota un tipo integral que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.
char
La palabra clave char se utiliza para declarar un carácter Unicode en el intervalo indicado en la siguiente tabla. Los caracteres Unicode son caracteres de 16 bits que se utilizan para representar la mayoría de los lenguajes escritos de todo el mundo.

float
La palabra clave float denota un tipo simple que almacena valores de punto flotante de 32 bits. La siguiente tabla muestra la precisión y el intervalo de valores aproximado para el tipo float.

double
La palabra clave double denota un tipo simple que almacena valores de punto flotante de 64 bits. La siguiente tabla muestra la precisión y el intervalo de valores aproximado para el tipo double.

bool
La palabra clave bool es un alias de System.Boolean. Se utiliza para declarar variables que almacenan los valores booleanos, true y false.

Metodos para leer datos

Variable=Pocicion o m¡nombre de memoria en donde se pociciona un valor de un cierto tipo de dato y puede ser modificado. Las variables puedden almacenar cadenas, numeros y estructuras. tiene un nombre( un identificador) que describe su proposito

Constante= Variable cuyo valor no puede ser modificado


Variable Console.Read(); //lee un caracter
Constante Console.ReadLine();//Lee una cadena

Metodos para escribir datos

1.- Write= Escribe sin añadir en caracter de fin de linea a la cadena
2.- Write Line= Si añade el caracter de fin de linea a la cadena, de modo que lo siguiente que se escriba se colocara en la sig linea

ejemplo
Console.Write("Hola");
Console.WriteLine("Pepe");
Console.Write("Como estas, ");
Console.WriteLine("¿bien?);

Ofreceria este resultado en la consola

Hola Pepe
Como estas, ¿bien?

Clases

Unidad basica en la programacion orientada a objetos. Todo programa en c# se organiza en clases que encapsulan datos y comportamientos.

Una clase se compone de la palabra clas seguido del nombre de la clase y el simbolo de inicio y fin de un bloque para delimitar la codificacion de sus mienbros.

Sintaxis

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


espacio de nombres

Es una clasificación especial utilizada para agrupar un conjunto de clases y estructuras relacionadas, así como para aislar ese grupo de nombres en conjuntos de tipos de datos separadosy distintos.

No se debe tener 2 clases cn el mismo nombre en un espacio de nombres y peden ser predefinidos o definidos por el usuario.

Sintaxis

namespace NombreEspacio
{
//aqui van lsa clases del aspacio de nombres
}

domingo, 28 de febrero de 2010

miércoles, 24 de febrero de 2010

Elementos lexicos de un programa

1.- comentarios= Anotaciones para documentar el programa. Existen 2 formas para colocar los comentarios // para un renglon o /*para mas de un renglon*/.

2. Palabras reservadas= tiene un determinado significado para el compilador

3.- Identificadores= nombres que los programadores dan a los diferentes elementos deu un programa. Deben de tener las sig caracteristicas
-Letras, digitos o caracteres
-Diferentes a las palabras reservadas
-no comenzar con digitos
-Sensible a mayusculas y minusculas
-deben contener nombres sigificativos

4.- Operadores y punteros= los operadores indican las operaciones y los punteros agrupan o separan
ej. { }

5.- Literales= Valores constantes escritos directamente en el programa

6.-Directivas del preprocesador= Instrucciones al compilador, comienzan con #

SENTENCIAS Y BLOQUES

La sentencia es la representación de una acción o secuencia de acciones ejecutables (operaciones) o no ejecutables (declaraciones).

Los bloques son grupos de sentencias delimitadas por llaves ({ })


MÉTODO MAIN

Es el punto de entrada al programa, y la ejecución siempre inicia en el método Main.
El método Main debe ser:

Declarado Static en una clase u estructura, debe regresar "void" o "int". Debe ser escrito
Main, y puede no tener parámetros y recibir un arreglo de Strings

lunes, 22 de febrero de 2010

c# antecedentes

El lenguaje B por Ken Thompson en 1970: recodificar el sistema operativo UNIX. Inspirado en el BCPL de Martin Richard, diseñado tres años antes.

En 1972 es Dennis Ritchie diseña finalmente C a partir del B, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior.

Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.

1980 surge C++ de la mano de Bjarne Stroustrup (Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos.

Evolución de C++ incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening.

Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.


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.

c#

Programar

Hacer que la computadora obedesca una serie de intrucciones bien detalladas. Usando un lenguaje de programacion indicamos a la computadora que tiene que suceder a cada momento y como debe funcionar a la interaccion del usuario. Se conoce como programacion de computadoras a la implementacion de un adgoritmo en un determinad lengusje de terminacion conformando un programa.

Programa

Concepto desarrollado por Paull neuman por 1946 . se define como la union de una secuencia de instrucciones que una computadora ppueda interpretar y ejecutar y una o varias estructuras de datos que almacenan la info de datos independiente a las estructuras que dicha secuencia de instrucciones maneja.

Segun Niklaus Wirth un programa esta formado por adgoritmos y estructuas de datos.

Lenguaje de programacion

Es la traduccion del lenguaje hmbreal lenguaje maquina el cual tiene un numero limitado de datos y palabras. Esta constituido por un conjunto de reglas:
1.- Sintactitas=especifican la formacionde instrucciones validas.
2.- Semanticas= especifican el significado de estas instrucciones.


jueves, 18 de febrero de 2010

acl

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


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

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



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

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

Ayuda: Se necesita más de una interfaz para más de un router para controlar el SSH y el acceso a Telnet a los routers.

cisco capitulo 8




.- ¿Qué son las ACL?


ACL significa Access Control List, y es un concepto de seguridad informática usado para fomentar la separación de privilegios. Es una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.


Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir "tráfico interesante" (tráfico suficientemente importante como para activar o mantener una conexión) en ISDN.


Fuente Info: http://es.wikipedia.org/wiki/Lista_de_control_de_acceso



2.- Proceso detallado de configuración de ACL


El proceso de creación de una ACL se lleva a cabo creando la lista y posteriormente asociándola a una interfaz entrante o saliente.

Configuración de ACL estándar


Router(config)#access-list[1-99][permit|deny][dirección de origen][mascara comodín]


Donde:


1-99 Identifica el rango y la lista.


Permit|deny indica si esta entrada permitirá o bloqueará el tráfico a partir de la dirección especificada.


Dirección de origen identifica la dirección IP de origen.


Mascara comodín o wildcard identifica los bits del campo de la dirección que serán comprobados.


La mascara predeterminada es 0.0.0.0 (coincidencia de todos los bits).

Asociación de la lista a una interfaz


Router(config-if)#ip access-group[nº de lista de acceso][in|out]


Donde:


Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.


In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.

Ejemplo de una ACL estándar denegando una red:


Router#configure terminal

Router(config)#access-list 10 deny 192.168.1.0 0.0.0.0

Router(config)#access-list 10 permit any

Router(config)#interface serial 0

Router(config-if)#ip access-group 10 in


Se ha denegado al host 192.168.1.0 y luego se ha permitido a cualquier origen,

Posteriormente se asocio la ACL a la interfaz Serial 0.

Configuración de ACL extendida


El proceso de configuración de una ACL IP extendida es el siguiente:


Router(config)#access-list[100-199][permit|deny][protocol][dirección de origen][mascara comodín][dirección de destino][mascara de destino][puerto][establisehed][log]

100-199 identifica el rango y número de lista

Permit|deny: indica si la entrada permitirá o bloqueara la dirección especificada.

Protocolo: como por ejemplo IP, TCP, UDP, ICMP


Dirección origen y destino: identifican direcciones IP de origen y destino.


Mascara wildcard origen y mascara destino: Son las mascaras comodín. Las 0 indican las posiciones que deben coincidir, y los 1 las “que no importan”.


Puerto:(opcional) puede ser por ejemplo: lt (menor que), gt (mayor que), eq (igual a), o neq (distinto que) y un número de puerto de protocolo correspondiente.


Establisehed: (opcional) Se usa solo para TCP de entrada. Esto permite que él rafico TCP pase si el paquete utiliza una conexión ya establecida (por ejemplo posee un conjunto de bits ACK)


Log: (opcional) Envía un mensaje de registro a la consola a un servidor syslog determinado.


Algunos de los números de puertos más conocidos:


20 Datos del protocolo FTP

21 FTP

23 Telnet

25 SMTP

69 TFTP

53 DNS




Asociación de la lista a una interfaz


Router(config-if)#ip access-group[nº de lista de acceso][in|out]


Donde:


Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.


In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.




Ejemplo de una ACL Extendida denegando un host hacia el puerto 80 de una red:


Router(config)#access-list 120 deny tcp host 204.204.10.1 any eq 80

Router(config)#access-list 120 permit ip any any

Router(config)#interface serial 1

Router(config-if)#ip access-group 120 in


Se ha denegado al host 204.204.10.1, (identificándolo con la abreviatura “host”) hacia el puerto 80 de cualquier red de destino (usando el termino any). Posteriormente se permite todo trafico IP. Esta ACL se asocio a la interfaz Serial 1 como entrante.

Aplicación de una ACL a la linea de telnet


Para evitar intrusiones no deseadas en las conexiones de telnet se puede crear una

lista de acceso estándar y asociarla a la Line VTY. El proceso de creación se lleva a cabo como una ACL estándar denegando o permitiendo un origen hacia esa interfaz. El modo de asociar la ACL a la Línea de telnet es el siguiente:


router(config)#line vty 0 4

router(config-line)#access-class[Nº de lista de acceso][in|out]




Como eliminar las listas de acceso


Desde el modo interfaz donde se aplico la lista:


Router(config-if)#no ip access-group[Nº de lista de acceso]


Desde el modo global elimine la ACL



miércoles, 20 de enero de 2010

cisco capitulo 5








Chapter 5 Ciscou


















Problema - Investigación - Solución


Problema.- Es un asunto del que se espera una solución, es el inicio de la investigación ya que la cadena comienza con problema, investigación solución.

El problema responde al porqué y se refiere al objeto que provoca una necesidad en algún sujeto, el cual desarrollará una actividad para transformar la situación mencionada. Para que exista el problema, la situación debe generar una necesidad en el sujeto, así como un problema científico es consecuencia del límite de conocimientos actuales que genera la insatisfacción de la necesidad del sujeto.


El problema surge como resultado del diagnóstico de la situación del objeto en que se manifiesta un conjunto de fenómenos, hechos y procesos no explicados.

Conceptos de programación:

Resolución de problemas por computadora
El proceso de resolución de problemas conduce a la escritura de un programa y a su ejecución en la misma aunque el proceso de diseño del programa es escencialmente un proceso creativo y se puede considerar una serie de fases o pasos comúnes que generalmente deben seguir todos los programadores.


Método Científico
El término método e el camino por el que se llega a cierto resultado. El método científico es el procedimiento que se sigue en las ciencias para encontrar la verdad y enseñarla. La ciencia recurre a la postulación y prueba de hipótesis para buscar el conocimiento que explica los fenómenos del universo , predice sus relaciones mutuas y establece leyes generales.


Conceptos Generales
  1. Datos: Es una parte que describe un objeto específico.

  2. Información: Conjunto de datos que generan un conocimiento en general.

  3. Informática: Ciencia que se encarga del tratamiento sistemático y automatizado de la información mediante la creación de métodos y técnicas para el desarrollo del nuevo dispositivo.

  4. Computación: Conjunto de disciplinas y técnicas desarrolladas para el tratamiento automático de la información mediante el uso de computadoras.

  5. Instrucción: Orden que se da para ejecutar una acción, sinónimo de comando que realiza una acción en lenguaje de programación que puede entender y ejecutar una computadora.

  6. Programa: Conjunto de instrucciones que indican a una computadora como realizar una operación.

  7. Programación: Es la elaboración de programas.

  8. Constantes: Es una variable cuyo valor puede determinar el compilador durante la compilación. Para que esto sea posible se ha de cumplir que el valor de una constante no pueda cambiar durante la ejecución, por lo que el compilador informará con un error de todo intento de modificar el valor inicial de una constante.
Fases de solución de un problema con computadora:
  1. Análisis del Problema
  2. Diseño de Algoritmo
  3. Codificación
  4. Compilación y ejecución
  5. Verificación
  6. Depuración
  7. Documentación
Las dos primeras fases conducen a un diseño detallado descrito como algoritmo. Durante la tercera etapa, se implementa el algoritmo en un código escrito en un lenguaje de programación, en la etapa 4 el programa se traduce y en las siguientes 2 etapas el programa busca errores haciendo por último la documentación.


Algoritmo:
  • es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.

  • Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico.

  • Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado.

2. Ejemplos cotidianos de algoritmos:

  • Pasos para cambiar la llanta de un coche
  • Instructivo
  • Receta de Cocina

3. Características de un algoritmo:

  • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
  • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
  • Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.

4. Simbolos para hacer un diagrama de flujo

5. Reglas básicas para hacer un diagrama de flujo
  1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
  2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
  3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario.
  4. No deben quedar líneas de flujo sin conectar
  5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
  6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
  7. Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida.