viernes, 5 de diciembre de 2014

Mi primer programa C++

Siguiendo con la entrada anterior Mi primer Algoritmo, realizaremos el mismo ejercicio, utilizando el Dev C++.

Ejercicio: Crear un proceso, para determinar si un individuo, puede ingresar a una Entidad, si se sabe que sólo puede ingresar mostrando su DNI.

Paso 1. Ingresar al entorno de Dev C++

Dev C++

Paso 2. Crear un nuevo proyecto, File>New>Project, en la ventana que aparece, seleccionar "Console Application", y colocar el nombre del Proyecto, en este caso lo dejo como Project1. Damos OK

C++

Me pedirá guardar los archivos, así que coloco las rutas del equipo, donde quiero guardar los archivos a generar. Luego de eso me aparecerá una interfaz como la siguiente:

Proyecto Dev C++

Antes de empezar, voy a explicar algunas particularidades que tiene nuestro proyecto.

Explicación 1
#include <cstdlib>
#include <iostream>
Se refiere a las librerías que usa C++, para la ejecución, las librería son componentes que también son programas, pero que nos permite reutilizarlos, sin necesidad de volver a crear un programa para hacerlo. Por defecto el Dev C++ incluye estas librerías al crear un nuevo proyecto.

Explicación 2
using namespace std;
Se utiliza, para realizar instrucciones más concisas. En la práctica nos ahorramos digitar algunas palabras más. Por defecto Dev C++ coloca la instrucción en un nuevo proyecto, si en el proyecto que tienes no coloca la instrucción o librerías, puedes y debes adicionarlo.

Explicación 3
int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}
Esta es la primera y principal "función" que vemos en C++, la función main y aquí es importante señalar que en programación hay que mantener el orden, para lograr que nuestros programas, sean entendibles.

Precisiones.

  • Todas las funciones tienen un tipo de dato, en este caso la función main tiene el tipo de dato int. Excepción aparte, son las funciones del tipo void.
  • Las funciones, pueden tener argumentos o parámetros de entrada, en el caso del main, recibe dos argumentos, y va entre paréntesis, seguido del nombre de la función.
  • Las funciones se abren y cierran con llaves, { .. }
  • Las líneas de código que se escriben, deben terminar en ;
  • Otra precisión importante es que  C++ utiliza Case Sensitive lo que significa que no es lo mismo una variable TMP, que tmp, en este caso serían dos variables.
  • Si no entendiste algún concepto, no te preocupes, que con la práctica se irá haciendo más sencillo.
  • En C++ lo primero que se ejecuta es la función main.

Ya hemos creado el proyecto, ahora nos toca codificar, siguiendo el algoritmo, voy a usar este Diagrama de Flujo, para que nos guiemos.

Algoritmo diagrama de flujo

El código lo colocaremos dentro del main, si se dan cuenta, se está siguiendo la misma secuencia que el Diagrama, cosas a tener en cuenta:
  • cout. Se utiliza para mostrar información por pantalla(Escribir)
  • cin. Se utiliza para capturar información(Leer)
  • if. Es el condicional por excelencia, al igual que las funciones, se debe de abrir y cerrar llaves { }, para colocar el contenido por la acción a realizar.
Código Ejemplo.

int main(int argc, char *argv[])
{
    //declaración de variables
    double DNI;
    bool esValido=false;
    
    //Solicitud de DNI
    cout<<"Ingrese su número de DNI:";
    cin>>DNI;
    
    //Validación del DNI
    if (DNI > 9999999 and DNI < 100000000) {
       esValido=true;
    }
    
    //Condicional ¿DNI válido?
    if (esValido) {
       //Mensaje ingrese           
       cout<<"Puede ingresar"<<endl;              
    }else{
       //Mensaje NO ingrese
       cout<<"NO Puede ingresar"<<endl;              
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Luego de colocar el código, vas a la sección "Execute>>Compile", con lo que estaríamos compilando nuestro programa, Es decir generando un programa que puede ser interpretado por el computador.
Si todo es conforme no debería arrojar error, En su defecto los errores, aparecen en la parte inferior.

Luego de compilar, nos toca ejecutar el programa "Execute>>Run", y listo ya podemos usar el programa.

Hello World C++

Prueba de la ejecución (Run)

Consola C++


jueves, 4 de diciembre de 2014

Mi primer algoritmo

Tratemos de resolver el siguiente problema.
Crear un proceso, para determinar si un individuo, puede ingresar a una Entidad, si se sabe que sólo puede ingresar mostrando su DNI.


El procedimiento que se entregaría al personal de Seguridad, sería el siguiente

Algoritmo Narrado

Por cada individuo que desee ingresar, se debe solicitar el DNI, verificar que sea válido, y si es conforme, puede ingresar, caso contrario, se deniega el acceso (Fácil de entender cierto..)

Diagrama de Flujo

Realizar el mismo proceso utilizando diagramas de flujo(DF), también es sencillo. Hay que tener en cuenta que los algoritmos son finitos, por lo que tenemos que tener un "inicio" y un "fin". En DF se representa por un rectángulo redondeado, o un óvalo.


Los procesos, como "Validación del DNI", son representados por rectángulos
Para mostrar o solicitar información (Leer/escribir), se utiliza el paralelogramo
Para preguntar como "¿DNI valido?" (Condicional), se utiliza un Rombo.

Pseudocódigo

El pseudocódigo, es la representación escrita del diagrama de Flujo.

Inicio
   Solicitar el DNI
   Validación del DNI
   Si DNI es valido entonces
        Informar que no puede Ingresar
   Sino
        Informar que si puede Ingresar
   Fin_si.
Fin.


Diagrama de Flujo - Programa

Así se vería el diagrama de flujo utilizando el Psint. veremos en la siguiente entrada este mismo algoritmo llevado a un programa utilizando el Dev C++




Tipos de Instrucciones

Tipos de Instrucciones


A nivel general, todos los libros de algoritmos, utilizan nomenclaturas similares, Es importante entender bien, como se comporta el ordenador, al momento que ejecutamos acciones (programamos). Vamos a entender algunos de estos conceptos.


Instrucciones de Asignación

Una variable, en algoritmos, es como una caja vacía, sabemos que contiene algo, sin embargo el contenido de nuestra caja puede "variar".

Bien las instrucciones de asignación, lo que hacen es asignar un valor a "alguna variable", veamos esto en una representación gráfica.

En la imagen, se observa como se comporta la variable "A", al inicio se le asigna un valor de 5, y luego se le asigna el valor de 2.

La representación de esta acción es de la siguiente forma:
(pseudocódigo, Diagrama de Flujo)







En C++ sería de la siguiente forma


Cuando utilizamos un lenguaje de programación(como C++), es necesario "declarar" la variable, internamente el ordenador separará un espacio de memoria, para utilizar esta variable.

Instrucciones de Lectura / Escritura

Una de las formas de que a una variable se le asigne un valor, es utilizando la instrucción de Lectura. Es decir el valor que va a tomar mi variable lo solicito por pantalla, y es un usuario final quien ingresa ese dato.

La instrucción de escritura, es lo contrario, entrego datos por pantalla, la representación es cómo en la imagen.


En C++ sería así.

int A; //declaración de la variable "A"
cin>>A//(Lectura) "A" Toma el valor que se digita por pantalla.
...
cout<<A//(Escritura) Muestra el valor de "A" por pantalla.

Bifurcación

Bifurcar, llegar a un punto en nuestro camino y decidir a donde vamos, ya que tenemos 1 o más opciones.

En algoritmos, y programación, podemos asumir algunas reglas para utilizar el tipo de instrucción "bifurcación":

  • Se tienen acciones que son “excluyentes”, es decir, que sólo tiene que ejecutarse una o la otra, pero no ambas.
  • Cuando es necesario elegir la acción a realizar de entre un conjunto de acciones existentes.
  • Cuando es necesario verificar que lo datos sean válidos para la aplicación en cuestión, por ejemplo: no es posible dividir entre 0, las horas que labora un trabajador, sólo pueden ser numéricos.
Tenemos varios tipos de bifurcación, y las detallamos a continuación.

Bifurcación Simple: 

Evaluamos una condición (rombo), y si esta da como resultado verdad, se ejecuta una acción o grupo de acciones, caso contrario, no ejecuta nada, y luego continúo con el algoritmo, o diagrama de flujo, la imagen muestra la representación en Diagrama de Flujo, y pseudocódigo, líneas abajo su representación en C++

En C++, la palabra reservada es "if", y entre parentesis colocamos la condición, luego entre las llaves la acción.

if (<condicion>) {
<acción>
}

Ejemplo: Crear un algoritmo para dividir dos números.
Solución: Sabemos que el divisor no puede ser cero, usamos un condicional simple.




lunes, 1 de diciembre de 2014

Formas de representar Algoritmos

Descripción Narrada.

El uso del lenguaje natural provoca frecuentemente que la descripción sea imprecisa y poco confiable, por lo que este tipo de representación no es recomendable.

Por ejemplo: Algoritmo en descripción narrada para la suma de 2 números.

1. obtener los números a sumar
2. sumar los números
3. anotar el resultado




Pseudocódigo.

La representación de una o varias acciones, es mediante lenguaje algoritmico, y es la base de los lenguajes de programación






Diagrama de Flujo

Se utilizan símbolos y gráficos, y es la base para 
la realización de diagramas de proceso.

Es importante precisar que los diagramas de flujo son importantes en las distintas carreras, sobre todo en ingeniería y administración