Archivo de la categoría: Programación

C++

Este blog, tiene una buena posición en Google. No lo digo de un modo “pretencioso”, sino, que, al igual que hace poco publiqué una entrada, en la que contaba los comentarios que tenía el blog con lo de “hackear cuentas de Hotmail”, pues me he dado cuenta que unos ejercicios que se colgaron aquí, de C++ resolviendo la búsqueda por burbuja (una tontería, pero bueno)…

Y a raiz de ver tantos comentarios, he decidido dedicar una actualización a daros un link que os podrá salvar de algún apuro.

http://www.cplusplus.com/

Realmente, es uno de los mejores lugares que he encontrado de C++. Os aconsejo que lo visitéis y aprendáis de ahí.

No creo que a nadie le obliguen a memorizar un lenguaje, pero un programado ha de ser plenamente capaz, de entender una página como esa y, gracias a esa página, hacer una aplicación en C++.

Generador de datos

DatosTal vez estais realizando alguna aplicación o base de datos, y quereis generar muchos datos para realizar pruebas. Además, tal vez, no tengas ganas de construir un generador de datos, o bien no tengas originalidad suficiente como para crear muchos datos “diferentes”, y solo consigas acer Manolo López Pérez como todos los nombres.

Esta página te facilita la vida a la hora de obtener datos de prueba.

Puedes crear cuantas columnas quieras de datos distintos y decirle que gener cuantos datos quieras. Estos datos, una vez generados los almacenará en html, excel, XML y SQL.

Podrás normalizar los datos según como desees que los genere, y además, podrás decirles cuantos quieres que te genere. Algo útil y bastante curioso.

Aprenda C en un día

C¿Cuánto tiempo estarías dispuesto a pasarte llendo a clases particulares para aprender C?

Oh! pero no son necesarias clases particulares para aprender C…

¿Cuánto tiempo estarías dispuesto a seguir un tutorial para aprender C tu mismo?

¿Medio año? ¿Un mes?

Pues no, con tan solo 24 horas podrás aprender C. Antes de eso, para poder seguir el tutorial que os ofreceremos, necesitas saber inglés antes. Pero bueno, tal vez para eso si necesites dedicar más de 24 horas… pero ¿quién no sabe “más o menos” inglés?

¡Así que no me seais holgazanes y dedicadle 24 horitas a aprender C!

El enlace, aquí lo teneis.

Notepad ++

Si eres de esos “programadores made in Windows” y muchas veces has sentido envidia de los editores de texto tipo KWrite que permiten cambiar la “fuente” de los archivos según el lenguaje de programación en el que escribas…

¡Aquí esta la solución!Notepad++

Notepad++. Esta aplicación de SourceCode, además de ser totalmente gratuita es una maravilla.

Es configurable 100%, y permite a la hora de escribir código, ver los colores según el lenguaje de programación que tengamos seleccionado. Desde SmallTalk (un LOO de hace más de 20 años), hasta la versión más moderna de Java.

Además, nos permite crear configuraciones propias de colores para lenguajes que tal vez no estén soportados.

Entre sus utilidades interesantes, está el abrir archivos a modo de pestañas y el emparejar parentesis, llaves y corchetes por parejas, de modo que siempre sepamos qué parentesis va con qué parentesis.

Una aplicación indispensable si no tenemos un compilador con interfaz de escritura.

Fuente para programadores

Pues bien, navegando por la web, he encontrado dos enlaces interesantes.

Estas fuentes, la única funcionalidad que tiene, aseguran sus autores, es para los programadores que quieren poder mostrar mucho código en la pantalla, pero con el suficiente tamaño/relación de aspecto, como para identificar lo que está escrito.

Para eso han creado estos dos tipos de fuente que, a mi parecer, uno de ellos es demasiado exagerado.

Alfabeto Como veis en esta imagen, la letra sería como se ve en la fila de abajo, de este modo, ellos afirman que se puede entender lo escrito, y ocupa muy poco espacio. El único problema dicen, es con las llaves, paréntesis y corchetes, que no saben como representarlos…

Parece que es algo digno de mencionar y de conocer… y quien sabe, ¡lo mismo alguno de vosotros lo usa en sus programas!

Los enlaces, aquí y aquí.

C++

C++C++, muchos de vosotros conocereis este lenguaje de programación. C++, basado en C, contiene los fallos de su “precedesor” y algunos otros “detallitos” que hacen que no sea tan buen lenguaje de programación como cabía esperar.

Aún asi, C++ es bastante potente. Un lenguaje orientado a objetos, con el cual podremos hacer bastantes virguerías. Puede usarse tanto con el gcc de Linux, como en Windows (os aconsejaria entonces el compilador Dev C++). Así mismo en la web hay bastantes librerias gráficas para este lenguaje.

Si teneis algún problema mientras lo estais usando (como me está pasando a mi con alguna práctica) os aconsejo que visiteis cplusplus. Es la mejor página con diferencia que he encontrado sobre C++.

Os aconsejo también que useis siempre que podais la STL, una librería que contiene una gran variedad de estructuras de datos (entre otras cosas también útiles) que podrán sacaros en más de un apuro… “ojalá tuviera una lista y no tuviera que perder un rato implementándola…“.

Ejercicio c++ : Andrés casposo

Bueno pues este es un programa que me dona mi amigo Andrés en c++ para que ponga en la web y aprendáis algo.

Como podéis observar este ejecicio resuelve dudas existenciales (no os aconsejo que os juguéis la vida con sus artes adivinatorias) 😛

#include
#include

using namespace std;

int main()
{
char * pregunta;
int respuesta;

srand(time(NULL));

pregunta = new char [256];

cout

Punteros en c++

/*ejemplo práctico que ilustra el uso de
punteros de forma muy básica.*/

#include

using namespace std;

int main()
{
//declaramos una variable entera
int var = 5;
//declaramos un puntero a entero
int *p;

//asignamos al puntero la dirección
//de memoria de var
p = &var;

//Escribimos la dirección del puntero
cout

QUICKSORT

El quicksort es probablemente la técnica de ordenación más rápida conocida hasta el momento. Fue desarrollada por C.A.R. Hoare en 1960.

La idea inicial fue hacer un algoritmo recursivo, pero dada su poca eficiencia actualmente se utilizan técnicas iterativas en la implementación de dicho algoritmo.

El quicksort funciona de la siguiente manera:
1. Eliges un elemento de una lista, llamado elemento de división..
2. Buscas la posición que le corresponde a ese elemento en la lista ordenada.
3. Vas poniendo los elementos menores de la lista a los lados del elemento de división de manera que a un lado quedan los menores y a otro lado los mayores.
(de esta manera se crean 2 sublistas divididas por el elemento de división)
4. Se aplica de forma recursiva este algoritmo a las 2 sublistas creadas mientras que tengan un largo mayor que 1.

Una vez terminado el proceso todos los elementos estarán ordenados.

Para optimizar el rendimiento del quicksort se podría elegir un elemento de división con un valor medio dentro de la lista. También se podría hacer una versión iterativa utilizando pilas para ir guardando los límites superior e inferior de cada sublista.

En cuanto a la estabilidad, el quicksort no es estable, el tiempo de ejecución de dicho algoritmo es variable, desde un tiempo promedio de ordenación de O(n log2n) hasta O(n2) con toda la lista ordenada ya que tiene que hacer subdivisiones de todos los elementos. (Pudiéndose este último caso evitar realizando algunas optimizaciones en el rendimiento.)

Finalmente hay que destacar del quicksort la rapidez de este algoritmo y que no requiere memoria adicional para ejecutarse y por el contrario tiene una implementación algo complicada, si se utiliza recursividad se utilizan muchos recursos y finalmente hay una gran diferencia en el tiempo utilizado entre el peor y el mejor caso, da una muy mala respuesta si la lista inicial está ordenada al revés o es una lista de constantes.

Pido perdón si hay algún error e intentaré corregirlo si dejáis un comentario rectificando.

Espero que os sea útil!