sábado, 11 de marzo de 2017

Secuencias de escape en C

Las secuencias de escape se utilizan en los lenguajes de programación C y C ++ , y también en muchos más idiomas (con algunas variaciones) como Java y C # . Una secuencia de escape es una secuencia de caracteres que no se representa a sí misma cuando se utiliza dentro de un carácter o cadena literal , sino que se traduce en otro carácter o una secuencia de caracteres que pueden ser difíciles o imposibles de representar directamente. En C, todas las secuencias de escape constan de dos o más caracteres, el primero de los cuales es la barra invertida, \ ; Los caracteres restantes determinan la interpretación de la secuencia de escape. Por ejemplo, \ n es una secuencia de escape que denota un carácter de nueva línea . El resto de este artículo se centra en C; Es probable que otros lenguajes de programación tengan diferentes sintaxis y semántica.
Secuencia

Valor

\n
Nueva línea (new line). El cursor pasa a la primera posición de la línea siguiente
\r
Retorno de carro (carriage return). El cursor pasa a la primera posición de la línea donde nos encontremos.
\t
Tabulador. El cursor pasa a la siguiente posición de tabulación.
\a
Alerta. Crea un aviso bien de forma visible o bien mediante sonido.
\b
Espacio atrás (backspace). Hace retroceder el cursor una posición a la izquierda.
\f
Alimentación de página (form feed). Crea una nueva página.
\\
Muestra la barra invertida.
\”
Muestra la comilla doble.
\?
Muestra un interrogante.
\número_octal
Muestra el carácter ASCII correspondiente según el número octal que se haya especificado.
\xnúmero_hexadecimal
Muestra el carácter ASCII correspondiente según el número hexadecimal que se haya especificado.
\v
Tabulación vertical.
\'
Apóstrofo o comilla simple.

viernes, 10 de marzo de 2017

Codigo Cajero Automatico en Java

import javax.swing.JOptionPane;
public class Cajero {

public static void main(String[] args) {
int saldo;
String fin;
fin="";
saldo= 5000;
do{
String opcion = JOptionPane.showInputDialog(null," ¿Que deseas realizar:" + " \n " + " 1= Incrementar saldo " + " \n " + " 2= Decrementar saldo" + " \n " + "3= Revisar tu Saldo");
int no;
no = Integer.parseInt(opcion);
switch(no) {
case 1:
String abonar = JOptionPane.showInputDialog(null,"¿Cua… quieres abonar?");
double mas;
mas = Integer.parseInt(abonar);
JOptionPane.showMessageDialog(null,"Tu saldo es= $"+(saldo+mas));
break;
case 2:
String restar = JOptionPane.showInputDialog(null,"¿Cua… quieres retirar?");
double res;
res = Integer.parseInt(restar);
JOptionPane.showMessageDialog(null,"Tu saldo es= $"+(saldo-res));
break;
case 3:
JOptionPane.showMessageDialog(null,"Tu saldo actual es= $"+ saldo);
break;
}
JOptionPane.showInputDialog("¿Deseas hacer otra operación?" + " \n " + " 1= si" + " \n " + " 2= no");
//fin = Integer.parseInt(decision);
}while (fin=="");
JOptionPane.showMessageDialog(null,"Gr... por hacer uso del cajero");
System.exit(0);
}
}

Programación en C y C++: Simulación de un Cajero Automatico Sencillo

int main();
 
#include<iostream>
using namespace std;
 
double saldo(double retiro,double deposito,double saldot)
{
 
    system("clear");
    saldot=saldot+deposito-retiro;
    return saldot;
     
     
}
 
double deposit(double saldot)
{
     
    double dep=0;
    char sn;
    do
    {
LDeposito:
    system("clear");
    cout<<"Ingrese cantidad a Depositar: ";
    cin>>dep;
     
    while(dep<=0)
    {
        cout<<"Desea ingresar un valor valido s/S n/N: ";
        cin>>sn;
        if(sn=='S'||sn=='s')
            goto LDeposito;
        else
            exit(0);
    }
    saldot=saldo(0,dep,saldot);
    cout<<"Desea realizar otro deposito s/S n/N: ";cin>>sn;
    }while(sn=='s'||sn=='S');
     
return saldot;
}
 
double retiro(double saldot)
{
    double retir=0;
        char sn;
        system("clear");
        if (saldot==0)
        {cout<<"Ud. no cuenta con saldo \n";
            cout<<"Desea realizar otra operacion s/S n/N: ";cin>>sn;
            if(sn=='S'||sn=='s')
            {
            system("clear");
            main();
            }
            else
            exit(0);
         
        }
        do
        {
            LRetir:
            system("clear");
            cout<<"Ingrese cantidad a Retirar: ";
            cin>>retir;
 
            while(saldot<retir)
            {  
                cout<<"Ud. no cuenta con saldo suficiente para hacer ese retiro\n";
                goto reintentar;
            }
             
            while(retir<=0)
            {
            reintentar:
                cout<<"Desea ingresar un valor valido s/S n/N: ";
                cin>>sn;
                if(sn=='S'||sn=='s')
                    goto LRetir;
                else
                    exit(0);   
            }
            saldot=saldo(retir,0,saldot);
            cout<<"Desea realizar otro retiro s/S n/N: ";cin>>sn;
        }while(sn=='s'||sn=='S');
     
return saldot;
}
 
 
 
double Option(int option1,double saldot)
{
    switch(option1)
    {
    case 1:saldot=deposit(saldot);break;
    case 2:saldot=retiro(saldot);break;
    case 3: {
            saldot=saldo(0,0,saldot);
            cout<<"Usted cuenta con :"<<saldot<<" dolares\n";
            }break;
    case 4:{system("clear");cout<<"Cerrando Sistema...";exit(0);}break;
     
    }
 
         
return saldot;
}
 
 
int main()
{
    int opt;
    char sn;
    double saldot=0;
     
    do
    {
    system("clear");
    cout<<"\t\t\tOperaciones Bancarias\n";
    cout<<"1. Deposito\n";
    cout<<"2. Retiro\n";
    cout<<"3. Saldo\n";
    cout<<"4. Salir\n\n";
    cout<<"Elija el numero de la opcion: ";cin>>opt;
    saldot=Option(opt,saldot);
    cout<<"Desea continuar con otra operacion s/S n/N: ";cin>>sn;
    }while(sn=='s'||sn=='S');
    system("clear");
    cout<<"Cerrando Sistema...\n";exit(0);
    return 0;
}

Características de la Programacion Orientada a Objetos

Esta se divide en :
Abstracción
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.
Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Recolección de basura
La recolección de basura (garbage collection) es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.

Qué es la Programación orientada a objetos

La programación orientada a objetos o tambien conocida por sus siglas POO, u OOP en inglés es un paradigma de programación que viene a innovar la forma de obtener resultados. 
Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Sitios web en donde podras aprender a programar gratis

1. Codecademy

Es una de las grandes plataformas, Codecademy permite aprender a programar de forma interactiva. Propone una serie de problemas que deberemos ir resolviendo a través de la programación, escribiendo código directamente en el navegador; será la web la que nos confirme si está bien, o si hay algo que deberemos corregir antes de continuar. Ofrecen lenguajes específicos (PHP, Python, Ruby) o también ‘paquetes’ con varios lenguajes relacionados entre sí.

2. Coderbyte

Coderbyte es una plataforma para aprender diferentes lenguajes de programación (JavaScript, Python, Ruby y otros) y que, además, incluye retos de programación, y de lo más diverso. Buscan no sólo aprender a programar de una forma divertida (¿a quién no le pica eso de los ‘retos’), sino también abordar otras cuestiones tanto técnicas como otras curiosidades. Ideal cuando ya se tienen conocimientos previos de programación, para reforzar conceptos o aprender otros nuevos lenguajes.

3. Code.org

Si lo que quieres es empezar, Code.org debería ser uno de los primeros sitios a visitar. Tutoriales para iniciarse a la programación que, promovidos por esta entidad sin ánimo de lucro —y con muchísimo éxito y movimiento, por ejemplo con la ‘Hora del código’—. Desde los primeros pasos en el mundo de la programación con tutoriales guiados y muy sencillos, hasta las primeras construcciones y elaboraciones algo más complejas y con mucho material disponible tanto para padres y docentes como para chavales más jóvenes, a partir de los siete años.

4. Scratch

Scratch es probablemente la herramienta más conocida de todas a las que nos estamos refiriendo aquí, y su impacto en el mundo educativo es espectacular. Su web no es tanto un tutorial o una guía para seguir paso a paso sino un programa completo cuyas posibilidades son casi infinitas; a su favor está la enorme comunidad que propone contenido, así como la ayuda oficial con recursos para todo tipo de niveles. Si quieres aún más material, prueba con nuestros proyectos Scratch de los viernes donde aunamos diferentes ideas y propuestas para utilizar este software.

5. Codeavengers

Más gamificación de la mano de Code Avengers, una plataforma reducida respecto a otras pero que guarda un enorme potencial. Tiene tutoriales sobre lenguajes (JavaScript, HTML/CSS) y luego sobre categorías de programación, como por ejemplo cómo crear videojuegos, páginas web u otro tipo de programas. Aseguran tener más de 200 horas de cursos y el código. Especialmente interesantes las posibilidades de cara a familias y colegios con el objetivo de trabajar con grupos de alumnos.


6. Rubymonk

Un lenguaje específico, pero con mucha diversión por detrás. Rubymonk es una plataforma para aprender Ruby, uno de los más lenguajes utilizados en el mundo actual. Plantean tres niveles que van de menor a mayor dificultad, y muchos retos y problemas a resolver directamente en el navegador. Otro plus es que es completamente gratuito, con lo que podremos ir aprendiendo en sus innumerables lecciones sin mayores contratiempos económicos.

7. Codecombat 

Imagina un juego en el que manejas un personaje, y que para ir obteniendo armas, armadura y demás, debes ir pasando niveles… resolviendo retos de programación. Así es Codecombat, que con una buena dosis de gamificación propone aprender a programar de una forma sencilla y atractiva. Con varios lenguajes disponibles (Python, JavaScript, Lua, etc.) tiene tintes más de videojuego que de tutorial, pero que funciona muy bien.

8. Programmr

Cursos, retos y proyectos en Programmr, una plataforma multidisciplinar con una muy amplia variedad de lenguajes disponibles por descubrir. Aseguran que cada curso tiene más de 100 ejemplos y ejercicios que deberemos ir completando para ir aprendiendo y avanzando de nivel, todo a través de un editor de código muy completo, visualmente atractivo y funcional.

9. Code Abbey

‘Practice, practice and practice!’ es como se presenta Code Abbey, una ‘abadía’ para aprender a programar en base a ir solucionando retos, que van de menos a más. Empezaremos sumando dos números y terminaremos, con una variedad en torno a la docena de lenguajes disponibles, como Python, C, Java o PHP entre muchos otros. Algo del estilo de Project Euler pero otros retos y propuestas para aprender a programar.

10. Play Code Monkey

Una premisa que puede parecer infantil, pero es que precisamente éste es su público objetivo: que con CodeMonkey los más jóvenes puedan aprender a programar al manejar a un mono que debe ir recogiendo algunas bananas del suelo, a la vez que esquiva enemigos. Mezcla Code.org con programación textual —es decir, no habrá bloques que mover sino texto que escribir— y el objetivo es tan sencillo como divertido y guiado. Es una plataforma de pago (sólo 29 dólares al año para un usuario) con la posibilidad de planes para clases o incluso colegios completos, en los que el profesor podrá llevar un registro del avance de sus alumnos.


martes, 7 de marzo de 2017

Como secaracteriza el lenguaje de programación C.

El lenguaje de programación C está caracterizado por ser de uso general, con una sintaxis sumamente compacta y de alta portabilidad. Es común leer que se lo caracteriza como un lenguaje de “bajo nivel". No debe confundirse el término "bajo" con "poco", ya que el significado del mismo es en realidad "profundo", en el sentido que C maneja los elementos básicos presentes en todas las computadoras: caracteres, números y direcciones. Esta particularidad, junto con el hecho de no poseer operaciones de entrada-salida, manejo de arreglo de caracteres, de asignación de memoria, etc. , puede al principio parecer un grave defecto; sin embargo el hecho de que estas operaciones se realicen por medio de llamadas a Funciones contenidas en Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de portabilidad, independizándolo del "Hardware" sobre el cual corren los programas, como seirá viendo a lo largo de los siguientes capítulos. La descripción del lenguaje se realiza siguiendo las normas del ANSI C, por lo tanto, todo lo expresado será utilizable con cualquier compilador que se adopte; sin embargo en algunos casos particulares se utilizaron funciones Compilador ó Sistema Operativo-dependientes, explicitándose en estos casos la singularidad de las mismas.

miércoles, 1 de marzo de 2017

Qué es el Metodo FileReader Java y ejemplo

Con este podrenos leer un fichero en Java. Y este tiene como objetivo  leer un fichero desde un programa en Java y despues mostrar el contenido de ese documento en pantalla. Pero de igual manera utilizaremos las clases BufferedReader y FileReader. BufferedReader: lee texto de una entrada de caracteres.

SI LO QUIERES PROBAR DESCARGA EL CODIGO AQUI: http://viid.me/qbrnIp



jueves, 16 de febrero de 2017

Clases BufferedReader y InputStreamReader Ejemplo


package hola;
import java.io.*;
public class Hola {
    public static String nombre,cadena;
    public static int edad;
    public static double estatura;
    public static void main(String[] args) {
        System.out.println("Ingresa tu nombre: ");
        nombre=metodo1();
        System.out.println("Ingresa tu edad: ");
        edad=Integer.parseInt(metodo1());
        System.out.println("Ingresa tu estatura: ");
        estatura=Double.parseDouble(metodo1());
        System.out.print("Tu nombre es:"+nombre+"Tu edad es:"+edad+"y tu estatura es:"+estatura);
    }
    public static String metodo1(){
    InputStreamReader isr=new InputStreamReader(System.in);
    BufferedReader br=new BufferedReader(isr);
    try{
      
        cadena=br.readLine();
       
    }
             
    catch(Exception e){
    System.out.println("ERROR Ingresa de nuevo");
    }
return cadena;
    }
}

martes, 10 de enero de 2017