Ahora tenemos nueva apariencia!! Disfrutala

Ahora el blog ha cambiado radicalmente su apariencia, para mejorar y llegar a ser el más innovador algún día!!.

Ahora actualizando el blog cada día que puedo.

Ahora haciendo mejor el blog, para que puedas encontrar lo que deseas!!!

Próximamente videotutoriales en Youtube!

Hey, ¿Estás preparado? Ahora haré videotutoriales por Youtube para que sigas avanzando en la programación.

domingo, 13 de abril de 2014

Contar cuantos elementos tiene un array

      Mientras viajaba por diversos foros de programación, encontré a alguien, quizás un joven estudiante de informática como yo, que necesitaba un código que fuera capaz de conocer cuantos elementos tiene un array.

      Por eso, decidí hoy, responder a su pregunta, con un codigo capaz de hacerlo. Estoy seguro que a ustedes también podría servirles, en el caso de que inicializen a un array con valores podrán contar cuantos valores ingresaron usando este algoritmo en C++;

///Hecho por Jorge Mesa

#include <iostream>

using namespace std;

int array[] = {3, 5, 9};

int main()
{
    cout<<"Hecho por Jorge Enrique Mesa Mosquera"<<endl;
    cout<<"Mi blog es http://algoritmosypseudocodigo.blogspot.com"<<endl;
    cout<<"Codigo que es capaz de calcular cantidad de elementos de un array" << endl;

    ///Array con elementos.
    int array[] = {3, 5, 8, 9, 1, 0};

    int tamano_del_tipo_de_dato; ///Ej. Tamaño de un Int (4 bytes), de un Char (1 byte)
    int tamano_del_array; ///Aplica sizeof al array
    int cantidad_elementos;

    ///Obtenemos el tamano de un int y del array usando sizeof.
    tamano_del_array = sizeof(array);
    tamano_del_tipo_de_dato = sizeof(int);

    ///Para calcular la cantidad de elementos
    ///Dividimos el tamano del array, entre el tamano de su tipo de dato, por ejemplo enteros.
    cantidad_elementos = tamano_del_array / tamano_del_tipo_de_dato;

    cout << endl;
    cout << "Cantidad de elementos: " << cantidad_elementos << endl;

    return 0;
}

       El codigo no necesita mayor explicacion, porque considero que está bien comentado, si alguna cosa, no duden en dejarme un comentario, estaré pendiente de todo lo nuevo que ocurra. Algo importante, que debes notar, es que el array fue inicializado, es decir, le otorgaron valores. De allí radica la importancia de saber cuantos elementos le diste.

Los arrays son imprescindibles en programacion. En algun momento los usarás!!

      En otra oportunidad, dedicaré un artículo a enseñar más sobre los arrays y sus particularidades intrinsecas, que más tarde veremos, en otro capitulo de algoritmos y pseudocodigo!!. Hasta luego.

miércoles, 9 de abril de 2014

Nuevo algoritmo: Dividir en cifras

     
Cifras es lo que vas encontrar!!
Hoy, te enseñare el algoritmo de como dividir en cifras. Aquí se observa la importancia de los comentarios en el codigo para explicarlo. Así que no es necesario que yo intervenga, si el mismo fuente es capaz de hablar por si mismo.

       Puedes reutilizarlo si deseas, siempre y cuando me colabores compartiendo el post por los medios que puedas!!.

#include <iostream>
#include <math.h>

using namespace std;

int dividir_en_digitos(int numero){
    int divisor = 10;
    int residuo = 0;
    int digito = 0;
    int cifras_descubiertas = 0;

    cout << "numero a dividir: " << numero << endl;

    ///Usa este bucle para determinar cuantas cifras posee el numero.
    while(residuo != numero){

        residuo = numero % divisor;

        divisor = divisor * 10;

        cifras_descubiertas++;

    }


    cout << "cifras descubiertas: " << cifras_descubiertas << endl;

    ///Se le resta uno a la cifras descubiertas y se eleva 10 a la n

    divisor = 10;
    divisor = pow(divisor, (cifras_descubiertas - 1));
    cout << "divisor: " << divisor << endl;

    ///numero inicial entre divisor
    ///cociente es digito.
    ///residuo se vuelve numero
    while(cifras_descubiertas != 0){

        ///El cociente son Digitos de izquiera a derecha
        digito = numero / divisor;

        ///El residuo se convierte en el numero
        residuo = numero % divisor;
        numero = residuo;

        ///El divisor disminuye
        divisor = divisor / 10;

        cout << "digito: " << digito << endl;

        cifras_descubiertas--;

    }


}

int main()
{

    int numero;

    cout << "Hecho por Jorge Mesa." << endl;
    cout << "Visita mi blog: http://algoritmosypseudocodigo.blogspot.com/" << endl;
    cout << "Ingrese un numero para mostrarlo separado en digiros: ";
    cin >> numero;

    dividir_en_digitos(numero);
    return 0;
}



      En el próximo capítulo de esta historia de algoritmos y pseudocodigos, verás la contrapartida de este codigo en C++, en pseudocodigo o en diagrama de flujo, para que tus ojos se vayan adaptando!!.

lunes, 7 de abril de 2014

Un cambio positivo: Una nueva plantilla

      Cada día de mi vida, cada vez que veía a mi blog, siempre note algo que estaba mal: Su apariencia era igual a cualquier otro en la red. Es algo que me disgustó desde un principio, porque mi contenido de la mejor calidad no se merecía tener una apariencia por defecto.

      Ahora, he comenzado el proceso para dotar de una personalidad única e irrepetible a mi blog. Porque ya no basta con contenidos de alta calidad, también necesito un apariencia única que sea reconocible por el lector.

      Para cambiar esa situación, y lograr que mi blog de algoritmos y pseudocodigo sea más original, decidí un buen día, en una noche de insomnio fuerte y persistente, buscar por internet como lograr que la apariencia de mi blog cambiara radicalmente. Y encontré un sitio que alberga plantillas para Blogger, muy genial. Se llama BTemplates.

     
Un sitio grandioso, en donde hay bastantes plantillas para escoger!! 100% recomendado.

      Ya he comenzado a implementar la plantilla en el blog, como habrás notado seguramente. Por eso pido disculpas a los lectores por la breve ausencia por unos días. Es que estaba preparando que plantilla usaría y como la personalizaré. Ahora los algoritmos y pseudocodigos, se verán mucho mejor!!.

      Este es un gran paso para el blog, y espero que Dios bendiga este blog. He ido paso a paso cambiando los menús, para hacer que los articulos antiguos aún puedan ser accedidos fácilmente. Con una plantilla de este tipo, podrás estar siempre informado de todos los articulos sin importar su fecha de publicacion.

      Deja un comentario, señalando tu opinión.!! Hasta luego!!.

lunes, 31 de marzo de 2014

Mi blog, y su campaña de crecimiento

      En mi vida como bloguero, ahora más que nunca había considerado la promoción del blog. Es algo fundamental para tener éxito, y ser reconocido por los demás. Para ello, he estado en una meditación profunda para determinar cuales serán las estrategias para que mi blog sobre algoritmos y pseudocodigo sea más conocido por las personas. Tanta información en este blog no debe perderse. XD.

      Bueno, para comenzar, he creado mi propio eslogan en un diagrama de flujo, de manera que quien vaya navegando por la red pueda reconocer quien es el dueño de esta bitácora.


      Es un eslogan que espero que tenga éxito, y que sea un buque insignia de mi blog. Para ello, resaltaré brevemente sus características:

  • Es sencillo y fácil de recordar.
  • Es original: ¿A quien se le había ocurrido usar un diagrama de flujo como insignia del blog?
  • Es intuitivo y muy ilustrativo: Porque los algoritmos siempre usan diagrama de flujo en cualquier publicacion.
      Aunque sea algo no tan importante, ni orientado a la enseñanza, considero que hablar sobre esa imagen es algo que marcará el futuro. Pienso que algún seré capaz de ponerlo en una pagina de facebook. Tarde o temprano, con la ayuda de Dios, este blog será un éxito!!

      Bueno, hasta la próxima, y gracias por leerme. Te espero mañana en mi próximo post sobre algoritmos y pseudocodigo!!.

domingo, 30 de marzo de 2014

Ahora, en proceso de crear tutoriales

He estado pensando en que, tarde o temprano tendré que comenzar un video canal en Youtube para enseñar programacion.
Por ahora, o al menos al día en que redacte este articulo no he comenzado con esa idea, aunque no abandonaran mi mente.
¿Te imaginas ver un video canal que diga " algoritmos y pseudocodigo "? Sería genial. Ya estoy en proceso de crear el contenido y ya estoy buscando los programas para grabar video.
¿Preferîas mi voz o una tipo loquendo (robotica como anonymous)?

Algoritmo: Conviertiendo Calificaciones numericas a Letras ¿Habrás aprobado el examen con una A?

Calificaciones númericas: Enunciado del Problema

      Hola, en este post, hablaremos sobre como convertir una calificación numérica, como un 20, 19, 15, 07, a una letra como una A, B, C, D hasta E. Para ello, es preciso, conocer el siguiente enunciado:

      Un algoritmo que permita convertir calificaciones numéricas, según la siguiente tabla:
A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1 hasta el 9. Se asume que la nota está comprendida entre 1 y 20.

Ahora, la solución en diagrama de flujo

      Y para completar, el diagrama de flujo del algoritmo para que seas capaz de auditar el pseudocodigo por ti mismo. Vamos, sólo es cuestión de escribir el mismo pseudocodigo de arriba, en la ventana del Pseint (programa para ejecutar pseudocodigo) y luego ya verás como genera por sí mismo el diagrama correspondiente.



      Allí está el pseudocodigo en forma de diagrama de flujo, aunque no se vea muy bien porque no pude pasar bien el interprete de Pseint. Es impresionante que dicha herramienta no sea capaz de producir apropiadamente el diagrama, a pesar de que ya lleva uno años en encima. Debería unirme como colaborador del proyecto a ver si puedo reparar unos cuantos errores. XD.

Ahora, la solución en pseudocódigo

      Para solucionar el problema, es posible inferir que requeriremos de muchos condicionales if, que sean capaces de comprobar si el valor de la nota se encuentra en el rango que permite cada letra, y en consecuencia asignarle un valor en letras. Para ello, aqui te presento el algoritmo que necesitas en forma de pseudocodigo:

(Pseudocodigo 100% fiable, ya depurado)

Proceso Calificaciones
Definir calificacion_a_leer como Entero;
Escribir Sin Saltar "Ingrese calificacion en valor numerico: ";
Leer calificacion_a_leer;
Si (calificacion_a_leer = 20) || (calificacion_a_leer = 19) Entonces
Escribir Sin Saltar "Su nota: ", "A  (Brillante)";
FinSi
Si (calificacion_a_leer > 15) && (calificacion_a_leer < 19) Entonces
Escribir Sin Saltar "Su nota: ", "B  (Sobresaliente)";
FinSi
Si (calificacion_a_leer > 9) && (calificacion_a_leer < 16) Entonces
Escribir Sin Saltar "Su nota: ", "C  (Regular)";
FinSi
Si (calificacion_a_leer < 10) Entonces
Escribir Sin Saltar "Su nota: ", "E  (No muy bueno)";
FinSi
FinProceso

      En otra ocasión, mostraré su equivalente en C++, por si alguien le interesa.


sábado, 29 de marzo de 2014

Potenciacion: Algoritmo Resuelto en Pseudocodigo y en C++

Uff, ya pasó más de un día desde que publique el algoritmo en diagrama de flujo de la potenciacion. Ahora, te mostraré su equivalente en C++ y en pseudocodigo. ¿Por qué? Porque siempre es necesario que seas capaz de comprobar si hiciste bien los deberes, y la mejor forma es comparando tu trabajo con la respuesta correcta, de manera que así irás asimilando mejor como se programa.

Bueno, al grano. Aquí está el algoritmo en pseudocodigo.Ah, y tienes que probarlo en Pseint, para ver si te da la salida correcta.

Proceso Potenciacion
Definir n,exponente Como Entero;
Definir resultado Como Entero;
Definir i Como Entero;
Escribir 'Hecho por Jorge Enrique Mesa Mosquera';
Escribir 'Mi blog es http://algoritmosypseudocodigo.blogspot.com';
Escribir 'Ingrese n: ' Sin Saltar;
Leer n;
Escribir 'Ingrese exponente: ' Sin Saltar;
Leer exponente;
i<-1;
resultado<-n;
Si exponente=0 Entonces
resultado<-1;
FinSi
Mientras i<exponente Hacer
resultado<-resultado*n;
i<-i+1;
FinMientras
Escribir 'Resultado: ',resultado Sin Saltar;
FinProceso

Y para finalizar, la respuesta en C++. Es importante notar, que la salida está completamente funcional. Allí la dejo para que hagas un análisis y aprendas mejor la lógica de la progrmación. Si alguna cosa ocurre, no dudes en dejar un comentario, o una pregunta por el chat. Estaré atento al blog.

#include<iostream>
using namespace std;

int main() {
	int exponente;
	int i;
	int n;
	int resultado;
	cout<<"Hecho por Jorge Enrique Mesa Mosquera"<<endl;
	cout<<"Mi blog es http://algoritmosypseudocodigo.blogspot.com"<<endl;
	cout<<"Ingrese n: ";
	cin>>n;
	cout<<"Ingrese exponente: ";
	cin>>exponente;
	i=1;
	resultado=n;
	if (exponente==0) {
		resultado=1;
	}
	while (i<exponente) {
		resultado=resultado*n;
		i=i+1;
	}
	cout<<"Resultado: "<<resultado;
	return 0;
}




viernes, 28 de marzo de 2014

Potenciacion: ¿Cual es su algoritmo?

Introducción al algoritmo

      ¿Que algoritmo veremos hoy? Hoy, hablaremos sobre la potenciación, como hacerla en C++.
¿Por qué? Es indispensable conocerla y cómo implementarla nosotros mismo para no depender de librerías externas.

      La potenciación, como fórmula matemática se define como: "El resultado de multiplicar un numero, llamado base, por si mismo n cantidad de veces, la cual se denomina exponente". A partir de dicha notación matemática exacta, comenzaremos a desglosar como será el algoritmo.

Allí se observa la base y su exponente. Es algo imprescindible para ser considerado potencia

Análisis del problema en busca de soluciones


      Analizando el problema superficialmente, se descubre que necesitaremos un contador que multiplique al numero por si mismo, n cantidad de veces. Por inferencia, deducimos que tendríamos que usar un bucle tipo while o for. (prefiero el Mientras). Pero, hay que considerar dos casos particulares de la potenciacion:

  1. Un número elevado a cero, es 1.
  2. Un número elevado a uno, es el mismo número.
      Para lograr la primera primera regla, es preciso implementar un condicional tipo SI, para detectar al exponente 0. En cuánto a la segunda regla, es necesario inicializar el contador a 1, de manera, que si el programa entra en el bucle con un exponente 1, salga al ser iguales entre ambos.

Solución en Diagrama de Flujo generado por Pseint

      La solución, está hecha en este diagrama de flujo en donde se evidencia el algoritmo en su forma más pura. Para generarlo, use Pseint, un programa de libre descarga que es capaz de ejecutar pseudocodigo. Link para ir a la pagina oficial de Pseint y descargarlo.

      Tu trabajo, como lector de este blog, es encontrar el pseudocodigo en Pseint que usé yo, para hacer esa imagen. Es una tarea de análisis. Ah, y además debes ser capaz de encontrar su equivalente en C++ de forma que tengas el algoritmo en pseudocodigo, en C++, y en diagrama de flujo. En sus tres modalidades.





      

martes, 25 de marzo de 2014

Raiz cuadrada aproximada (Solución en pseudocodigo y en C++)

      Si deseas ver el articulo en donde publico el diagrama de flujo, visita Raiz cuadrada aproximada: Diagrama de flujo.

      Bueno, despúes de una larga espera,.para que ustedes mismo sean capaces de validar su trabajo, les muestro la solución en pseudocódigo y en algoritmo en C++. Es importante que sepas que este fue el codigo que use para generar el diagrama de flujo. Ah, siento no poder resaltar el pseudocodigo como lo hace con C++, es que el script que hace eso no tiene esa opción, algún día se la añadiré.

      En pseudocódigo:

Proceso Raiz_Aproximada
Definir variable_raiz,i,n Como Entero;
Definir n_impar Como Entero;
Escribir 'Hecho por Jorge Enrique Mesa Mosquera';
Escribir 'Mi blog es http://algoritmosypseudocodigo.blogspot.com';
Escribir 'Ingrese un numero: ';
Leer n;
n_impar<-1;
variable_raiz<-0;
Mientras n>0 Hacer
n<-n-n_impar;
variable_raiz<-variable_raiz+1;
n_impar<-n_impar+2;
FinMientras
Escribir 'La raiz aproximada es: ',variable_raiz,' y con excedente: ',n;
FinProceso

      Raiz cuadrada en C++:
//Este es el codigo en C++
//Si usas Pseint, podrás escribir el algoritmo en pseudocodigo para luego
//exportarlo a C++. Asi es mejor y será de mayor aprendizaje

#include<iostream>

using namespace std;

int main() {
	int i;
	int n;
	int n_impar;
	int variable_raiz;
	cout <<"Hecho por Jorge Enrique Mesa Mosquera"<<endl;
	cout <<"Mi blog es http://algoritmosypseudocodigo.blogspot.com"<<endl;
	cout <<"Ingrese un numero: "<<endl;
	cin >> n;
	n_impar=1;
	variable_raiz=0;
	while (n > 0) {
		n=n-n_impar;
		variable_raiz=variable_raiz+1;
		n_impar=n_impar+2;
	}
	cout<<"La raiz aproximada es: "<<variable_raiz<<" y con excedente: "<<n<<endl;
	return 0;
}





      ¿Que hemos aprendido? Has aprendido a trasladar un diagrama de flujo hacia codigo real. Es algo muy indispensable, debido a que, no siempre los algoritmos los hacemos nosotros porque muchos ya fueron inventados hace años, y casi siempre los encontramos en forma de diagrama de flujo. Sencillamente, es un ejercicio para comprender la lógica del programa obviando los detalles menores como los errores de escritura.

lunes, 24 de marzo de 2014

Raiz cuadrada aproximada (Diagrama de Flujo)

      Hoy, para ejercitar el cerebro, probaré que tanto has practicado. Tu tarea es convertir un diagrama de flujo, a pseudocodigo y más tarde a código fuente en C++. Para ello, hoy te regalaré un algoritmo sencillo: La raiz cuadrada por el método de las restas sucesivas.

      Oh!!! ¡¡Que clase de cosa es esa?? Es una forma de obtener la raiz cuadrada de un numero n, restando un numero impar que se incrementa mientras que el resultado sea mayor a cero.

      Es un método bastante sencillo de implementar en un ordenador, y servirá como tarea de pseudocodigo y algoritmos en C++. Ahora comenzaremos a analizar paso a paso que debemos hacer para que nuestro programa funcione. Ahora, a continuación el diagrama de flujo necesario para el algoritmo:

Diagrama de flujo del metodo de raiz cuadrada por restas sucesivas
      
       Oh!! ¿Y ahora qué? Recuerda: Debes convertir este diagrama de flujo a su equivalente tanto en pseudocodigo como en C++. ¿¿Ah, dificil o fácil??

       En el próximo articulo, daré la solución al problema planteado. Bueno, hasta luego, y a romper neuronas se ha dicho!!!


domingo, 23 de marzo de 2014

Nuevo: Ahora mayor interacción social en el blog.

      He estado pensando en añadir gadgets al blog que permitan un chat tipo caja. Y lo he conseguido. ¿Para que agregar una caja de chat al blog?

      Para hacerlo más interáctivo, para formar una comunidad alrededor del blog. Para ello, he visitado la página web de Cbox, y al registrarme me han dado lo necesario para poner su chat en mi blog.

Caja de Chat usando Cbox
      Ahora, si necesitas hablar sobre algoritmos y pseudocodigo, programacion y mucho más relacionado con la informática y los programas, ya tienes la posibilidad de hablar con otros usuarios con intereses similares al tuyo, sin abandonar esta pagina web. Estaré pendiente para responder tus dudas en el mismo instante en que las publicas.

      He dedicado una entrada de esta bitácora digital, porque me ha parecido un avance importante en el diseño de este blog. Es un paso más en el tiempo que tarde o temprano ayudará a mantener en pie a este espacio.

      ¿Por qué he escogido Cbox? Lo he elegido por la simple razón de ser más funcional frente a otros tipos de chats. Permite usuarios sin registración, algo importante ya que permite flexibilidad 

      Es muy versátil y lo mejor, es gratis. No hay que pagar ni un centavo por las caracteristcias básicas, las cuales son más que suficientes para montar un blog. Con este avance, espero haber atinado al éxito. Sólo es cuestión de tiempo para medir que tan exitosa ha resultado esta idea.

      Bueno, a seguir programando algoritmos y a escribir con lápiz o papel nuestro pseudocódigo!! Hasta pronto!! No olvides dejar un comentario o comentar usando la nueva caja de chat del lado derecho.

¿Cómo transcribir un algoritmo a un lenguaje de programacion sin fallar?

      ¿Has escrito tu pseudocodigo muy bien, pero al trasladarlo a la realidad, es decir escribirlo en C++, Java, u otro lenguaje real, no sabes como hacerlo??.

      Entonces, tienes que tomar conciencia y saber que la parte más díficil ya la has hecho. Y siguiendo estás simples reglas será más fácil para ti traducirlo a un lenguaje real:

  • Trata de buscar equivalentes entre lo que haces en pseudocódigo y lo que puedes hacer en un lenguaje real. Por ejemplo: Imprimir variable x (En pseudocódigo) es equivalente a cout << variable x; (En C++) o printf("%s", variable x)
  • Lee tutoriales de programacion en Java, en C++ o cualquiera que sea el lenguaje que necesites. Así irás aprendiendo que capacidades proporciona cada uno.
No importa cual es tu lenguaje de programacion, siempre podrás pasar tu algoritmo a él.


      Y lo mas importante: Lee codigo y trata de entenderlo. Porque de nada sirve que leas un libro gigante sobre el lenguaje que deseas y jamás hayas programado algo en él. Práctica todos los días y aprenderás.

      Recuerda: Un programador debe saber resolver problemas. Lo demás con la práctica vendrá por si sólo.

sábado, 22 de marzo de 2014

Los 12 primeros articulos del blog que debes ver.

     He estado tratando de enseñar programación y sus fundamentos de la mejor manera que he podido. Para ello, he invertido tiempo en escribir de una manera entretenida y comprensible. Hoy, me siento con mucho orgullo para poder decir que este blog ha entrado en una nueva etapa: Una de crecimiento. Hoy, te recomendaré los primeros 12 artículos sobre programación que publiqué.

     Con ellos, estoy seguro que aprenderás mucho. Y descubrirás el porqué de muchas cosas. Ahora, comenzaré a enumerarlos y a contar sobre ellos.

  • C++: Un veterano que no muere: Aquí, en este articulo señalo el por qué se usa C++ para enseñar programacion. Y tambien como lenguaje de uso principal a nivel internacional
  • Tips para principiantes : Unos cuantos tips para quienes apenas inician en el mundo de la programacion. Es importante una guía sobre como ir aprendiendo, no todo es aprender C++.
Blogger: La plataforma mas usada a nivel mundial, junto con Wordpress

  • El comienzo de un blog : La idea original de la cual se mantiene vivo esta bitácora digital. Sin ese articulo, habría empezado con el pie izquierdo. Afortunadamente, inicie con el derecho, presentandome y hablando sobre que temas verás aqui.

      Con estos 12 articulos que son dignos de recordar, debido al esfuerzo que aplique en ellos al ser los primeros. Si los visitas, irás viendo como he evolucionado con el paso del tiempo.



viernes, 21 de marzo de 2014

Variables: ¿Que valores les podemos asignar?

Una variable, es un espacio en donde guardar valores como puede ser un numero, un texto, o mas, dependiendo de la complejidad de dicha variable. Es algo claro como el agua, no hay nada mas que decir, excepto que cada una está asociada con un tipo, algo que indica que valores puede almacenar.

A eso que indica que se puede guardar y que no, le llamamos tipos. En C++, existen diversos tipos. Ahora, en un breve instante te señalare cada uno:
  • Enteros: Representan numeros solamente, cuyos valores pueden ser negativos o positivos. Para una mejor comprension, anexo un pedazo de codigo

int distancia = 30: //Variable entera con positivos y negativos

unsigned int = 20;  //Variable entera solo con positivos, por tanto posee mayor cantidad de numeros al convertir el rango negativo a positivos.

  • Carácter: Sólo letras, números, signos de exclamación y cualquier otro tipo de cosa que represente a un texto. Frecuentemente se usa una sucesión de caracteres para formar frases:

char letra = 'a'; //Los caracteres individuales van entre comillas simples
char texto[] = "porque no has vuelto"; //El texto se escribe usando un array de chars.

  • Valor lógico: Verdadero o falso. Solo uno de los dos estados se mantiene al mismo tiempo.

bool es_correcto = true; //Variable que indica si es verdadero o falso. Ningun otro valor es aceptado.

  • Decimales: Pueden ser de valores negativos o positivos. Usan float y double.


float pi = 3.14; //Variable decimal
double otro = 2.28; //Variable decimal dos veces mas grande que float. Mayor precision.

Opinion: Mi corta vida como bloguero

      Durante mi corta vida digital, he permanecido en pie ante las adversidades a pesar de todo lo que ocurre. A pesar, de que en un inicio no tenía ni una sola visita. Es así como, para recordar y rendir honores a esos momentos valiosos invertidos, cada mes haré un resumen con los mejores artículos que he podido enviar a la red.

      ¿Por qué? Porque a todo buen momento, se le debe guardar un recuerdo. A cada hora de sacrificio en busca de una mejora, cada minuto invertido, cuentan. Antes que nada, le doy gracias a Dios por darme vida. Sé que hablar de Dios no es algo relacionado con la programación, pero a él, hay que darle gracias por permitirme vivir un día más. Un respiro que mañana pueda no tener.

Espero que Dios me dé tiempo para seguir con vida y cumplir mis metas


      Aún sigo pensando en cuando llegará ese momento de triunfo sobre las adversidades. Ese momento en el cual consiga mi meta de vida. Un propósito. Este blog llena parte de mi alma, pero aún así en mi vida personal permanece una gran parte vacía. Un vacío que espero Dios pueda sanar.

      Vamos, adelante blog!!! Estaré esperando ese momento de victoria. Ese instante en el cual mi blog aparezca en primera plana. Ese breve pestañear en donde vea mi vida realizada y correcta.

      Ser bloguero es algo que no es fácil. Ya lo he dicho, y lo volveré a decir: Admiro a esos bloggers que tienen éxito a base de sacrificio y de esfuerzo. Durante mi corta estadía digital, he ido ensayando mejores maneras de escribir, en un intento de mejorar mi redacción y ser mejor persona cada día.

He estado intentando mejorar mi redaccion para crear mejores articulos


      Aunque hoy, en este breve articulo, hable sobre cosas que no sean programación, considero necesario dejar un momento para la reflexión. Para comprender el por qué estamos aquí como personas, como seres humanos. El triunfo es algo que se gana, y espero conseguirlo. ¡¡Gracias Dios!!

martes, 18 de marzo de 2014

¿Que es la asignacion y como se usa en C++?

       Asignar, es dar valor a una variable. Ok. Hasta ahi todo marcha bien, pero. ¿Como asignamos valores a variables en C++? ¿Es igual de sencillo que poner un igual? ¿Tendrá otras cosas de importancia que hay que considerar?

       Si tienes estas y otras interrogantes, aqui encontrarás las respuestas. En C++, hay diferentes maneras de asignar valores a una variable, incluso a varias al mismo tiempo. Veamos:

  • Asignacion simple: Consiste en que a una variable, se le da un valor x. Para claridad, mejor verlo con codigo en C++
  • #include <iostream;>
    
    int main(int argc, char *argv[]){
        //Asignacion simple: Darle a una variable un valor.
        int variable_x = 50;
        int variable_z = 178;
    
    }
    
  • Asignacion multiple: Darle a variables diferentes, un mismo valor de una sola vez
  •     //Asignacion multiple: Darle el mismo valor a variables distintas
        int var1, var2, var3;
        var1 = var2 = var3 = 70; ///Todas tendrán 70 como valor!!
    

       En otra ocasion, veremos mas topicos sobre C++. Si crees que ha faltado algo, no dudes en enviarme un mensaje dejando un comentario con tus dudas o sugerencias. Es algo inevitable, soy humano y puedo olvidar cosas. Pero, con tu ayuda cambiaré y mejoraré. ¿OK?

lunes, 17 de marzo de 2014

El código ASCII: Conocerlo te ayudará mucho

      El código ASCII, es una norma norteamerica estándar usada para representar caracteres en cualquier computadora. ¡Oh no! Me perdí. ¿Qué es un caracter?

      Un carácter, es una letra, un número, un espacio y cualquier cosa que pueda poseer un texto, como pueden ser tabulación y signos de exclamación.

      En definitiva, el ASCII nos permite representar textos en cualquier computador. Para que aprendas, allí te dejo una tabla con cada carácter. Es importante que conozcas que cada valor entero, es decir un numero, representa un caracter.

      Hay muchos que son no imprimibles, es decir, no los verás en pantalla como pueden ser los espacios y tabulaciones, además del fin de linea (enter). Aún sigue siendo válido para todo. Estudialo y al menos aprende los caracteres alfanumericos, es decir, de letras y numeros.

      En la imagen de al lado, se muestran aquellos que son visibles. Letras desde la A hasta la Z y numeros. Minusculas y mayusculas. Hay muchos más, si deseas verlos, sólo avisame y los mostraré en algun post. Gracias por visitar.

domingo, 16 de marzo de 2014

División por cero: Catastrofe mundial

     ¿Tu programa colapsa inesperadamente? ¿Se cierra sin previo aviso? En muchos programas hechos en C++ es frecuente ver tras una division por cero una imagen aterradora como está. Windows, en particular, siempre nos recibirá con este mensaje:



      En la imagen anterior se visualiza claramente como nuestro algoritmo se da un resbalón y cae, dejandonos con la mirada atónita. ¿Por qué ocurre eso? Ahora es necesario indagar las causas de una división por cero.

      El algoritmo no comprueba si el dividendo es cero. Cero entre algo dará infinito, algo demasiado problematico. Para muestra un ejemplo en C++ que falla ante este error:

//Codigo que falla al dividir por cero. Hecho por Jorge Mesa

#include <iostream>

#include <cstdlib>



int main(int argc, char *argv[]){

     int dividendo = 0;

     int divisor = 0;

     int resultado;



     ///Ahora se le pide al usuario un numero;

     cout << "Ingrese un dividendo: ";

     cin >> dividendo;



     ///Ahora se le pide un divisor;

     cout << endl; ///Para dejar una linea de espacio usa endl;

     cout << "Ingresa un divisor: ";

     cin >> divisor;

    

     ///Aqui es donde puede fallar si el divisor es cero.

    ///Con una simple verificacion pudo haberse evitado

    resultado = dividendo / divisor;

    cout << "El resultado es: " << resultado << endl;



     return 0; 

} 



Para solucionarlo, sólo para corregirlo añades este pedazo de codigo antes de dividir:

if(divisor == 0){

      cout << "Divisor invalido. Division por cero.";

      ///Aqui agregas el codigo que deseas ejecutar cuando ocurra ese error.



      return 0; ///Para salir de main y dejarlo sin errores. 

} 


Y eso es todo.

Es un error bastante simple, pero nos hará caer más de una vez si te descuidas. Por eso, siempre que hagas operaciones con variables asegurate que jamás tengas que dividir algo entre nada.

sábado, 15 de marzo de 2014

Lenguajes de programacion: Tan diversos como los idiomas humanos.

      Un lenguaje de programación es una forma de expresar un algoritmo en un computador, sin errores y sin modificar lo que hace un algoritmo.

      Es como escribir en inglés, francés o alemán, y decir hola en cada uno de estos idiomas. La idea no cambia, pero la forma de expresarla, el idioma, varía según donde se venga y con quien se desea hablar.

      En el caso de los lenguajes de computadora, varía según el uso como por ejemplo unos dedicados más a servidores web, otros orientados a estudiantes, y otros al alto rendimiento y trabajo profesional. Alli es donde varîa segun a quien se desea hablar, ya que hay unos que son mas estrictos y profesionales y otros un poco mas flexibles.

El algoritmo es la idea, el lenguaje sólo el idioma. Al igual que Hola en muchos idiomas.


      Para considerar a un lenguaje de programación como tal, debe permitir estas cosas:

  • Expresar de forma correcta cualquier algoritmo, sin confusiones.
  • Debe proveer una manera de usar instrucciones condicionales, de asignación, de manipular los datos y otra de recibir entradas y producir salida.
  • Debe tener reglas para delimitar cada acción, por ejemplo, punto y coma para terminar cada instrucción.

Si tu lenguaje cumple estas características y trabaja sobre un equipo real, entonces estas programando. Es asi de simple. Un lenguaje de programación sólo es un medio para escribir un algoritmo. Lo importante es que el algoritmo, el resto puede variar y adaptarse a las necesidades.

El lenguaje de programacion te permite traspasar tu algoritmo a una maquina real.

C++: Un veterano que no muere.

     C++ es el más usado, a pesar de llevar años y años. ¿Has pensado por qué, al entrar al mundo de la programación es el primer lenguaje que debes conocer? ¿Por qué aún se usa si es más viejo que tu abuela?

     C++, lenguaje nacido de C, resulto exitoso al poseer estas caracteristicas:

  • Permite hacer cualquier tipo de programa solo limitado por tu imaginacion, al igual que C
  • El programador controla por completo el 99 por ciento de cada instruccion. Algo que permite usar solo los recursos necesarios, ganando eficiencia.
  • Claridad en el código. Por más dificil que la gente diga que es, con el tiempo te darás cuenta que sólo tienes que cambiar la forma en que miras las cosas.
  • Es rapido en comparacion con otros lenguajes. ¿Por qué? Por que únicamente usa lo que necesitas, sin añadidos innecesarios. Sin cosas adicionales.
  • Es un lenguaje completo, sin eliminar ninguna característica ni siquiera para facilitar el aprendizaje. Es computacion pura y dura, sin omitir nada. Por eso necesitas aprenderlo, para sentar bases sobre como funciona un computador en todo el sentido de la frase.
C++ es como el correcaminos: Rapido, eficiente y agil

     Bueno, según mi experiencia esas han sido las principales por las cuales C++ es indispensable como inicio para tu carrera como programador. Porque sin él, tendrías problemas para entender por que unas cosas se hacen de una manera. No entenderías como resolver cada problema que te enfrente.

El compilador: ¿Que haríamos sin él?

     El compilador, es un programa indispensable hoy en día, debido a que, reinventar la rueda no es una opción.

     El compilador surge como forma de programar sin tener que manipular palancas para ingresar el código de un algoritmo cualquiera. Surge como una forma de programar expresando las instrucciones en idiomas humanos.

     Sin él, la computación y el diseño de algoritmos estuviera seriamente limitado sólo a científicos especializados. Gracias al desarrollo de los compiladores, los programadores ya pueden ser cualquiera con ganas de aprender.

     Sólo necesitarías descargar un compilador desde la Internet, y leer manuales. Es así como la programación ahora puede ser una herramienta para mejorar nuestra calidad de vida accesible a todos los pueblos.

Sin compilador, programarías así: uniendo cables.


     Y el compilador permitió simplificar la gran complejidad a la hora de probar tus algoritmos en una  máquina cualquiera.

     Y a su vez, posibilitó el surgimiento de una comunidad de ingenieros de software sin preocuparse por cómo funciona el hardware.

     El compilador marcó el inicio de una nueva era, y la evolución del software frente al hardware, quien hasta entonces no llevaba mucho avance por más capacidad que se tuviera.

¿Por qué? Porque antes el hardware avanzaba cada vez más, mientras que la manera de programarlo se hacía cada vez más difícil y confusa debido a las pocas facilidades de programación proveídas por los fabricantes.

     Si este post te ha parecido útil, invita a tus amigos y conocidos a visitar el blog. Pueden aprender más de lo que se imaginan.

viernes, 14 de marzo de 2014

Tips para principiantes

     Antes que comienzes a crear algoritmos y programar algo, es necesario que sigas estos tips o sugerencias que he hecho en base a mi experiencia como programador:

  • Nunca te rindas. Aunque parezca mentira, al programar nunca te va funcionar a la primera vez. Algun pequeño error te hará fallar y por tanto debes investigar y seguir intentando hasta que funcione
  • Al crear un algoritmo, piensa bien como es la entrada de datos que esperas y cual es la salida que deseas. En base a esas dos premisas serás capaz de saber si tu algoritmo está bien o mal
  • Al programar, debes tener la mente despejada y concentrada. Es importante que estés atento a lo que haces ya que puedes conseguir una solucion mas rapido a tu problema sin quebrarte la cabeza por horas.


     Otra cosa importante es que nunca escribas codigo que no entiendas. Programar es pensar y entender, no copiar. Si has estado copiando fragmentos de codigo sin haber entendido como realmente funciona estarás en serios problemas en un futuro.

     ¿Por qué es necesario saber estas recomendaciones? Porque programar es algo que requiere fortaleza emocional ya que existen esos momentos dificiles en donde tu programa no funciona bien y es posible que malgastes mucho tiempo, que hubieras podido ahorrar fácilmente siguiendo estos consejos.

Resuelve tanto como puedas por ti mismo. Copiar jamás te ayudará
Copiar jamás te ayudará a resolver los problemas. Siempre piensa y resuelve tanto como puedas por ti mismo
      Ahora comparte, este articulo a todos tus amigos para que ellos tambien puedan mejorar. Con tu grano de arena ayudas a muchos de tus conocidos sin siquiera gastar ni un centavo.

jueves, 13 de marzo de 2014

Hello world: Mi primer programa en C/C++

Con este primer código hecho en C/C++ inauguras tu carrera como ingeniero en sistemas, o como quiera que se llama en tu país. También puedo enseñarte Java, si lo deseas.

Ahora bien, es hora de ver un codigo en acción. Fijate bien en cada instruccion.

//Lo que está despues de doble barra "//" es un comentario de una linea

//Usa #include <libreria> para usar funciones que estan en cierto archivo
#include <stdio.h>

//Main: La funcion principal. Aqui colocar el codigo a correr

int main(int argc, char *argv[]){

    //Usa cout para mostrar datos en pantalla.
    cout << "Hello world" << endl;
}

Usando este sencillo codigo, es posible observar algo interesante: Todo el codigo y las instrucciones deben ir dentro de algo llamado main. Main es una funcion, un bloque de codigo que se ejecuta inmediatamente al momento de arrancar el programa. Es indispensable jamas olvidar que instrucciones fuera de ese codigo, serán erroneas. En las próximas lecciones irás aprendiendo mas sobre C/C++ y tambien sobre algoritmos en pseudocodigo.

Hello world: ¿Que aprendemos con él?

     ¿Por qué el primer programa siempre suele ser un Hola Mundo? Hay una razón sencilla: una tradición y a la vez una forma de familiarizarte con un lenguaje como puede ser C,  C++, Java, Javascript, u otro. Para ilustrarlo, te mostraré mi hola mundo personalizado:


     ¿Para que me servirá hacerlo? Básicamente te permite:
  • Sirve para aprender cuál es la manera de imprimir datos por pantalla, algo indispensable para interactuar con el usuario.
  • Además, te enseña las normas y estilo que ese lenguaje en particular usa. Por ejemplo, C y C++ usan main, Javascript unicamente se ejecuta cuando lo llaman, al igual que PHP.
  • Te enseña con el ejemplo. Para aprender es necesario percibir, entender y retener la informacion. Leyendo código percibes. Estudiandoló lo entiendes. Y si ya lo entiendes lo retienes porque ya podrás resolver ese problema en un futuro.

Ahora, para que ayudarte te daré algunos ejemplos de Hola Mundo en C++, Java, y Javascript, al menos tres lenguajes bastante usados y conocidos:

Hola mundo en C++
    ///Hola mundo en C++
    #include <iostream>

    int main(int argc, char *argv[]){
          cout << "Hola mundo!!!" << endl;
    }

Hola mundo en Javascript

function hello_world(){

      alert("Hola mundo, es mi primer programa desde Javascript");

}



domingo, 9 de marzo de 2014

El algoritmo: La base de la programación.

     Un algoritmo es un plano, por así decirlo, que nos indica paso a paso que debemos hacer para conseguir un resultado esperado, como puede ser un numero en cálculos matemáticos, descubrir una relación entre eventos, y mucho más.

     Por esa razón es la base de la programación. Sin algoritmos la programación no existiría. Un algoritmo para ser válido debe tener estas características:

  • Recibir datos por una o mas entradas. Siempre debe tener algo para procesar, de lo contrario es algo inutil sin ello.
  • Debe indicar paso a paso, de forma precisa sin errores, todas las acciones que debe hacer un computador para obtener un resultado y solucionar un problema.
  • Debe tomar decisiones y hacer algo con esa informacion.
  • A su vez, produce una o mas salidas. La salida debe ser la solucion al problema.

Un algoritmo bastante representativo.

     Los algoritmos son la base de la programacion, incluso de la vida diaria. Porque nosotros, como personas somos seres que pensamos, que razonamos en base a ciertas situaciones. La computadora es una copia casi fiel de como son los seres humanos. Hay muchos algoritmos diferentes para cada problema, unos son muchos mas complejos, u otros sencillos como multiplicar algo por algo. Pero siempre deben cumplir las reglas que he dicho antes.

     Gracias por leer el post, y comparteló a algún conocido que necesite saber sobre programacion. Puedes llegar a hacerle un gran favor. Hasta luego.

Pseudocodigo: ¿Cual es su razon de existir?

      El pseudocodigo es indispensable para todo buen programador. Es algo que se debe hacer antes de programar. Básicamente, el pseudocódigo describe como el algoritmo debe comportarse, que decisiones debe tomar y que entrada y salida esperar, independientemente del lenguaje real que se use. Hay incluso herramientas capaces de ejecutar pseudocodigo, como Pseint, la cual explicaré un futuro post.

Usando Pseint, puedes ejecutar pseudocodigo y ver tu algoritmo en accion.


Sus ventajas inmediatas son estas:

  • Independencia de la lógica del programa. Un algoritmo debe funcionar igual en cualquier lenguaje de programación, sin importar en donde sea ejecutado. Por ello, el pseudocódigo ofrece una manera de expresarlo sin preocuparnos por saber C++, Java, PHP, o cualquier otro.
  • Facilita el aprendizaje. Si eres un estudiante, es mucho mas sencillo ver como promediar un numero en un lenguaje natural que esperar a ver clases de C++. En programacion, lo importante es pensar y resolver problemas, lo demas queda en segundo plano una vez hayas hecho lo primero.
  • Ayuda a la solucion de los problemas. Pensar solo en que debe hacer el algoritmo ayuda mucho a solucionarlo sin preocuparnos por errores de sintaxis, como un punto y coma y muchas otras reglas.
     Sus desventajas, ninguna. ¿Sabes por qué? Porque no es un lenguaje de programacion. Simplemente un algoritmo en lapiz y papel. Por ello, es solo una herramienta para que mejoremos nuestras capacidades como programadores. 

     Ahora que sabes que es un pseudocodigo y para que sirve, ya doy por hecho mi trabajo aqui. Espero que ahora ya sepas mejor que estas haciendo. Y por favor comparte este articulo a un amigo.

Escribir algoritmos en lapiz y papel te ayudará a desarrollar tus habilidades

sábado, 8 de marzo de 2014

Nuevo: Resaltando mi codigo ahora con mejor estilo

     Mientras comienzo a planificar que algoritmos iré publicando primero, y cuales tutoriales seleccionaré para ayudar, he conseguido algo indispensable para todo blog de programación decente: Una herramienta para resaltar el código fuente.

     ¿Por qué es indispensable? Porque si quieres mostrar código, debes hacerlo bien. Con un resaltado, como lo hacen los editores. De esa manera será más fácil para el visitante comprender lo que se dice. Por eso, navegando por la Internet, he encontrado un script que me ha parecido bastante útil: SyntaxHighlighter, hecho en Javascript.

//Diseñando un código que permita algo interesante

#include <iostream>
#include <cstdio≷

int main(int argc, char *argv[]){
    cout << "Probando al resaltador de sintaxis. Ahora ya es posible mejorar la enseñanza" << endl;
    return EXIT_SUCCESS;
}

     ¿Javascript? Si, Javascript. Un lenguaje dedicado ayudar al HTML a presentar mejores paginas. Se usa porque no consume muchos recursos, y es capaz de interactuar directamente con el usuario, permitiendo que el codigo sea resaltado y coloreado en tiempo real, sin restricciones de ningun tipo.

     Ya lo he añadido a la plantilla, y espero que ayude a que este blog crezca. Seguiré planificando mas algoritmos. Debo seguir un plan para no perderme. Hasta luego. Para muestra un codigo fuente:
#include <iostream>

using namespace std;

int main()
{
    int variable_inutil = 5;
    int variable_sin_uso = 6;
    int variable_doblemente_inutil;

    //¿Que pasa si sumo una variable_inutil con otra sin uso?
    ///Obtengo una variable doblemente inutil
    variable_doblemente_inutil = variable_sin_uso + variable_sin_uso;

    //Imprimo por pantalla un mensaje:
    cout << "Mensaje inutil: Su variable es igual a:" << variable_doblemente_inutil << endl;

    /*Asi he demostrado como resalta el codigo*/
    cout << "Ahora termino la prueba. Si pudiste compilar esto, tienes todo en orden" << endl;
    cout << "Si no pudiste, y solo lo puedes leer desde el archivo de texto, vuelve a empezar" << endl;

    //Fin del programa. Retorna cero para avisar que todo fue bien.

    return 0;
}

Tratando de subir entre la marea de competencia

     Mientras construyo y pienso como hacer que este blog prospere y sea el más visitado, he estado pensando como es tan dificil en ocasiones subir entre la marea. La marea llena de blogs de competidores que hablan también sobre la programación, unos viven por unos días o meses; mientras que otros sobrevivieron y crecieron hasta ser los más grandes que podemos encontrar con una simple busqueda.

Los blogs que compiten son miles y las olas que quieren verlos fracasar millones


     Es impresionante ver que debes conseguir generar contenido de calidad, que atraigan a miles quizas millones y a la vez protegerlo. Todo ello desde el inicio. Debe ser bastante arduo ir subiendo hasta conseguir el éxito. Por eso admiro a esas personas que dan parte de su vida por mantener vivo un blog.

     A esas personas que apartan, al menos un momento breve de sus vidas personales para escribir algo y ayudar a otro. Y muchos logran conseguir fortunas a base de un simple blog. Es realmente inspirador querer llegar a la cima del iceberg, y llegar hasta ahí.

Todos comenzamos estando abajo, pero podemos llegar al éxito con esfuezo.

     Por eso, cuando mi mente ya tenga preparado un plan de cómo vencer entre la tormenta, no lo dejaré tan fácil. Espero algun día ver este blog, en primera plana. Quiero ser mencionado por otros blogueros. Quiero tener éxito. Hasta luego, y hasta la próxima.Y gracias a Dios por darme un día de vida más, aunque no siempre lo aproveche como es debido.

Post para probar algo rápido

Este post será usado como forma de probar cosas rápidamente
    #include <iostream>
    int main(int argc, char *argv[]){
      cout << "Hello world!!" << endl;
      return 0;
    }

lunes, 27 de enero de 2014

El comienzo de un blog

Comenzando en la blogosfera


     Para comenzar, mando un saludo a aquellos visitantes que han llegado a mi blog, ya sea por casualidad, referidos por el buscador o incluso llegando a través de algún amigo que les propuso este blog.

     Con este primer post, se inaugura el blog 'Algoritmos y pseudocodigo' y a continuación, doy detalles acerca de lo que aquí podrás encontrar:

  • Este espacio te dará una solución fácil y practica para tus problemas y ejercicios de programación de la universidad, tanto en código fuente en lenguaje C como en pseudocodigo.
  • Además, te diré algunos errores comunes que suelen cometer los novatos en programación para que los corrijas y pases la materia, si estás en la universidad, y algunos tips para que mejores tu forma de pensar y seas más logico y coherente al escribir programas.
  • También este lugar te brindará información y enlaces a tutoriales de programación completos y gratis para que profundices tus conocimientos.
  • Y por último, te recomendaré algunos software que harán más fácil tu vida al programar algoritmos en tu PC.
    Sin embargo, aquí no podrás encontrar tu proyecto de fin de carrera ya hecho, es decir, un programa que exceda las 1000 lineas de codigo jamás estará en este blog. 

    El proposito es brindarte una respuesta clara para tus dificultades y dudas cuando no puedas comprender bien lo que te explica el profesor. Ahora, comenta este blog a tus conocidos y amigos y deja tu opinion y sugerencias.