El post que buscas se encuentra eliminado, pero este también te puede interesar

No sabes programar?te ayudo!,aprende C++ en 21 dias[día1]

Saludos Taringa!

Día 1

No sabes programar?te ayudo!,aprende C++ en 21 dias[día1]


Ha habído la suficiente aceptación como para impulsarme a darme el trabajo de hacer esto, supongo que si luego de esto un par de taringeros han aprendido a programar, entonces habrá valido la pena.

Dejaré en los posts correspondientes a cada día (día del libro) una lista de links a los posts anteriores.

Tambíen diré que aunque mi objetivo no es expandir la información del libro, si procuraré hacer que la información este levemente resumida como para facilitar su comprención y haré alguna acotación cuando sea necesario para llevar la información a un nivel más entendible.

Aclaro que está no será una fiel traducción (además espero sepan disculpar mi mala ortografía y errores mecanograficos), pues leo una parte y como omencioné la resumo y escribo de la manera que ustedes puedan obtener la información sin una carga extra complejidad y procurando sea resumido y simpe.

Me preguntarón en los comentarios de el [Día 0] como haría para anunciar cuando haga cada post... pues la verdad... no lo estoy seguro.. aquello que me sigan podrán verlo en el "MI" - "Noticias" , adémas intentaré anunciarlo en los comentaríos de los dias anteriores para que quienes sigan los comentarios de los post se enteren, para aquellos que no caén en ninguno de esos grupos supongo que deberán estar atentos, haré los posts en la categoría de "Hazlo tu mismo".

Intentaré resolver todas las dudas y preguntas, pero sea que hagan preguntas en los comentarios o por MP, pido algo de paciencia, pues no creo poder responderlos todos de inmediato.

Pondré en todos los posts un recordatorio de que lo que coloco es la traducción del libro: "Learn C++ in 21 days" pero que intentaré acoplar un poco para que llege con más facilidad a los iniciados.

Así que se bienvenidos y ponganle empeño, recuerden que aprender un lenguaje de programación es relativamente facil... pero aprender a programar solo se logra programando (Intercalaré algo muy interesante para ayudar con esto cuando estemos en días superiores).

aprende

Días anteriores:

Día 0


C++




Algo de historia de C++

Los lenguajes de computadoras an evolucionado desde crudas interacciones electronicas pasando por las más primitivas instrucciones maquina (binario) hasta que se empesaron a utilizar palabras más entendibles a los umanos como "ADD" o "MOV" , pero el día de hoy existen lenguajes mucho más entendibles para los humanos y que nos permiten interacciones del tipo "suma = a + b".

Como es de suponer una computadora que solo comprende 1's y 0's no puede entender un programa escrito en un lenguaje como C++ que está pensado para ser más comprencible por el humano, y es precisamente por esto que se usan otros programas, los cuales se encargan de convertir el programa escrito en C++ en 1's y 0's para que la computadora los entienda.

Estos programas a su vez pueden ser de dos tipos: los interpretes y los compiladores.

Los interpretes son programas que leen directamente el fichero con el código y ejecutan las ordenes, por esto es relativamente más facil trabajar con ellos.
Los compiladores: se encargan de convertir el código y nos entregan un fichero que contiene 0's y 1's y que podemos ejecutar (pues la maquina ya lo entiende), la ventaja es que los programas compilados se ejecutan mucho más rapido que los interpretados.

Otra ventaja de los lenguajes compilados como C++ es que usted puede distriburir los binarios (fichero con 0's y 1's) en vez del código fuente (código escrito en lenguaje C++), así nadie puede husmear en como ha echo usted el programa [Esto ultimo no es tan bueno... lo mejor es distribuir el código fuente, http://www.fsfla.org/ikiwiki/about/what-is-free-software.es.html ).

Por muchos años el objetivo principal de los programadores era el de escribir código que fuese corto y que se ejecutase rapido, pues la memoria y hardware era muy costoso, pero hoy es comprencible sacrificar algo de memoria a cambio de escribir código más facil de entender.

Programas

El código fuente (programa escrito en lenguaje C++ ) puede ser convertido en ejecutable de dos formas:

Usando un programa interprete (no lo usaremos), o usando un compilador que genere un binario (fichero con 1's y 0's)(esto si lo usaremos).


Resolviendo problemas

Por muchos años las personas que escribian programas y las personas que los usaban eran todos profecionales de las ciencias de la informatica y computación, pero hoy las computadoras son usadas por muchas personas, personas más interesadas en usar programas para resolver sus problemas que en entender como funcionan.

Irónicamente para lograr que los programas sean más faciles de utilizar para estas personas, los programas se volvieron más complejos y sofisticados pues las "interfaces de usuario amigables" contienen ventanas, menus, iconos y botones.


Programación procedimental , estructurada , y orientada a objetos

Al principio los programas eran una serie de procedimientos echos para actuar con los datos, un procedimiento son una serie de instrucciones ejecutadas una tras otra por la maquina y los datos estaban algo separados de los procedimientos.

El principio basico de la programación estructurada es "divide y vencerás", cualquier tarea por compleja que sea puede ser dividida en sub-problemas más pequeños y faciles de afrontar.

Los antiguos programas obligaban a los ususarios a ir paso a paso por una serie de pantallas, pero hoy existen modernas interfaces manejadas por eventos que presentan todas las opciones y responden a las acciones del usuario.

La programación orientada a objetos intenta responder a estas necesidades con tecnicas para manejar una gran complejidad y permitiendo reusar partes de sofware (usar código que ya hemos escrito para varias situaciones).

La idea de la programación a objetos es tratar a los procedimientos que manejan los datos y a los datos que están relacionados entre si como un solo "objeto".

C++ y la programación orientada a objetos

C++ soporta completamente la programación orientada a objetos (llamada tambien paradigma de la orientación a objetos), incluidos los 4 pilares basicos de la programación orientada a objetos:

encapsulamiento
ocultación de datos
herencia
polimorfismo

*En esta parte el libro intenta explicar cada uno, pero lo hace vagamente y de forma poco comprencible, lo dejaremos para más adelante y harémos una explicación más simple de esto*

** Haré una pequeña explicación de lo que es la Orientación a Objetos (OOP):

supongamos que en nuestro programa queremos representar el "objeto" guitarra (luego veremos como)

Asi que definimos un objeto de nombre "guitarra", dentro de él definimos sus propiedades como si esta es electrica o acustica, ademas definimos en que nota está afinada, tambien su peso y tamaño.

Luego definimos las acciones que se pueden hacer con esta: definimos la acción afinar, tocar, cambiar_cuerdas y romper.

una vez lo ayamos echo podemos usar el objeto guitarra para saber por ejemplo su peso, decimos que el peso de la guitarra es guitarra.peso , o la tocamos diciento guitarra.tocar o la afinamos con guitarra.afinar.

espero eso les de una idea, solo tienen que quedarse por el momento con una leve noción.

Debería saber o aprender C antes de C++?

Varios programadores y el mismo Stroustrup (creador de C++) están de acuerdo, pero tomando en cuenta que C++ contiene dentro de si a todo el C , no solo que NO es necesario, sino que podría ser ventajoso emepzar con C++.

Desarrollo

Cuando escribimos el código C++ en un editor de texto plano (como los proporcionados en el Día 0) guardarémos el fichero con el nombre que queramos pero con la terminación ".cpp" (no olvidar el "." punto).

NO usar Micro$oft Word para escribir el código, si lo hacemos no funcionará [quedan advertidos], el ejemplo más claro de lo que SI podemos usar es el -bloc de notas- (este es perfecto por momento).


Compilando el código fuente

Una vez tengamos nuestros ficheros del tipo "programa.cpp" con el código fuente. los compilaremos para obtener el ejecutable.

En windows estarán usando "dev-c++" como mencioné el Dia 0 , asi que lo que haremos será abrir dev-c++ y darle a la opción "nuevo proyecto", luego en la parte central pegaremos el código que hemos escrito. Luego vamos a "Ejecutar" , opción "compilar", si tienes problemas con esto googlear algo del tipo "como compilar con dev-c++" les ayudará, yo no uso windows ni ninguno de esos compiladores, así que no puedo darles una descripción exacta.

En Mac ocurre lo mismo, tendran que usar google y ver como compilar. (les aseguro que no complicado, practicamente solo tendrán que econtrar el boton que diga "compilar"

En GNU/Linux y unixes en general la cosa es mucho más facil y mejor en todo sentido :
abrimos una terminal y ejecutamos "g++ programa.cpp -o programa" (donde "programa" es el nombre que le hayamos puesto).


Nuestro primer programa en C++

Como en los libros tradicionales harémos el clasico "hola mundo", copiaremos el código tal y como está en el editor de texto, lo compilamos y lo ejecutamos.

ADVERTENCIA: este codigo contiene en la izquiera unos numeros con dos puntos ":" estos solo sirven para indicar la lina, más NO son parte del código


1: #include <iostream.h>
2:
3: int main()
4: {
5: cout << "Hello World!n";
6: return 0;
7: }


*Les recomiendo que lo copien a mano (SIN usar ctrl+C , ctrl+V)

luego compilamos conforme a lo visto antes, porfavor no pasen mientras no hayan logrado compilar y ejecutar este código, si tienen problemas no duden en pedirme ayuda o preguntar, como dije.. para quines usen windows me costará un poco ayudarles, pero lo haré como pueda.

una vez más: es IMPORTANTE que puedan ejecutar este primer programa (cuando lo ejecuten les mostrará una linea que dice "hello world" y nada más.

en windows y mac, el compilador les dará luego de compilar un fichero ejecutable el cual deberan abrir.

en GNU/Linux nos crea un fichero ejecutable que tiene el nombre que le indicamos luego de la opcion "-o"
g++ programa.cpp -o programa


Hasta aquí el día 1, he resumido y cortado deliberadamente muchas partes del texto original con el fin de que se más claro y lijero de comprender, avisenme si tienen dudas y preguntas, pero tengan algo de paciencia, responderé todo lo rapido que pueda.

Si pudieron compilar y ejecutar ese primer ejemplo entonces ya podremos hacer mucho más facil TODO lo que vendrá despues, así que haganlo y no sigan hasta que no lo hayan logrado.

En el día 2 ya nos meteremos de cabeza en C++ , en el día uno habia mucha historia y datos importantes (y mucho texto feo y aburrido que leer), pero muy poco del lenguaje en sí, en el proximo prometo será algo más interesante

Compartan el post si les parece util par que más taringeros lo usen.

Saludos!

Para aquellos que están usando DEV-C++ tienen que seleccionar la opción "console aplication" y borrar todo el código que les aparesca por defecto antes de pegar el código de ejemplo.

si les da problemas les sugiero colocar estas 2 lineas justo antes del "return 0;"

int variable;
cin >> variable;

eso evitara que el programa muestr "hola mundo" en un milisegundo y se cierre luego.

Anuncios

26 comentarios - No sabes programar?te ayudo!,aprende C++ en 21 dias[día1]

culoluc +3
Gracias por seguir groso , ahora despues lo leo porque ahora no tengo tiempo, pero van puntines
MonaguilloGil +2
Soy principiante y agradesco tu tiempo dedicado
segui las instrucciones del dia 1 y no pude realizar el "hola mundo"
capture las lineas y compile y ejecute y nada
si tienes algun tip, mucho lo agrdeceria [email protected]
Saludos desde Tlaxcala, México
alx741 +1
@MonaguilloGil Algunos problemas comunes que noté fueron seleccionar "console aplication" al iniciar el compilador y agregar las 2 lineas justo antes del "return0;" :

int var;
cin >> var;

avísame si era algo de eso...
SekkenCourtois +1
A lo mejor mi pregunta es tonta, pero por que cuando compilo:
cout << "Hello World!n "; (OJO en el espacio después de la n, que en realidad no va originalmente)

¿Mi antivirus lo detecta como virus? (valga la redundancia)

Ya se que en realidad es: cout << "Hello Worldn";
CasiqueCasimiro +1
@alx741 no nesesariamente es un virus, puede ser un falso positivo, a mi me salta siempre el sandbox cuando compilo algo por C# por que husmeo los los registro de windows.
alx741
@CasiqueCasimiro Si es verdad... también puede ser eso.. hay algunos antivirus que son bastante pedorros... , yo sugeriría que lo desactives para hacer esto.. pues si es un falso positivo.. no pasa nada.. y si es un virus.. de todos modos tu sistema ya está infectado asi que... que más da...
SekkenCourtois
@alx741 @CasiqueCasimiro Gracias por la respuestas, solamente me salta la alerta cuando compilo esa parte, con el signo de admiración, la n y un espacio. Cuando lo compilo con el slash inverso no pasa nada.

Solo que me llamo la atención, no se, tal ves descubrí un bug

Nota: tengo instalado Avira (gratis) creo que es un buen antivirus. Y ..... +10
Tato_rocho +1
Idolo en un rato me lo leo todo varias veces.
albertocal +1
Muy bueno, ya leì dìa O, te sigo.
dj_wacker +1
No me sale nada despues de copiar el codigo :S
alx741
@dj_wacker una vez que se cargó la barra que mencionas el compilador creó un fichero ejecutable.. es ese fichero el que tienes que ejecutar (abrir / dar doble click).. es a eso a lo que me refiero con "ejecutar" , lastimosamente el menu de dev-c++ tambien se llama "ejecutar" pero eso es solo para compilar, cuando digo "ejecutar" me refiero a dar doble click al fichero que se generó, mientras se cargaba la barra es posible que te haya dicho en donde se guardo el fichero ejecutable que generó,
dj_wacker +1
Le doy doble click pero nada no pasa nada antes que nada porque capaz que el error esta aca: cuando le doy nuevo proyecto me salen varias opciones (windows aplicacion, console aplication, static library, dll, empy proyect) cual tengo que seleccinar ahi??? y cuando selecciono uno borro la informacion que me aparece para reemplazarla con el codigo que voy a copiar????
alx741
@dj_wacker Puede ser eso.. tienes que seleccionar la opción "console application" o "empy proyect", y si... si te aparece código pre escrito es mejor que lo borres...
albertocal +1
Estoy siguiendo atentamente este curso, gracias por compartir.
ZeusNightmare +1
No me deja copila :c me dice J:Makefile.win [Build Error] [Archivo(..o] Error 1 Que es eso? :/
ZeusNightmare +1
x__bl4ckh34rt +3
@ZeusNightmare tenes que quitar los numeros y los " : "

ADVERTENCIA: este codigo contiene en la izquiera unos numeros con dos puntos ":" estos solo sirven para indicar la lina, más NO son parte del código
alx741
@ZeusNightmare Perdon por no responderte pronto, no habia habia visto la imagen, y si, como dice @x__bl4ckh34rt (gracias!!) los numeros de la izquierda son solo para indicar el numero de linea tal como está indicado en el post.
chernabog +1
Favorito y los puntos ya llegarán .
Francogame +1
Muy bueno el curso

Pero tengo una duda: Copié el código en dev-c++, lo pude compilar, y me dejó un .exe, pero cuando le hago doble clic no se abre, tambien probe con la opcion de compilar y ejecutar y tampoco me sirvio, ¿sabes que puede ser?

PD: Uso windows XP
alx741
@Francogame que bueno que se solucionó, si es normal que se ejecute solo por un segundo, pues no hay nada que le diga que debe detenerse. Perdon lo que debería ser es 2 lineas:

int variable;
cin >> variable;

**antes del "return 0;"

eso debería funcionar
Francogame +1
@alx741 Ya lo probé y me sirvió, muchas gracias por la ayuda
Seguí con esto porque está muy bueno
alx741 +1
@Francogame Que bien! , claro.. lo haré.. espero se unan más Taringeros..
LOBACCARO +1
che pongo lo que pusiste con el dev c++ y pongo compilar y ejecutar , sale una pantalla de la aplicación y se cierra automáticamente no hace nada
alx741
Elejiste la opción "console"? y agregaste las 2 lineas extras que comento al final?
terrycrew4 +1
@alx741 Yo elegi la opcion windows que opcion debo elegir Windows, console o empty
alx741 +1
@terrycrew4 deben elegir la opción "console"
aunesto17 +1
muchas gracias, mañana te dejo 10(enserio), sigue con el buen trabajo.
x__bl4ckh34rt +1
Hola, mira aca esta mi compilacion, me salio de 10! gracias entendi que lo de la variable se puede cambiar a cualquier palabra he remplazado "variable" por " x " lo entendi porq antes yo solia programar java y me se respetar estos ";" y las llaves, pero esto es nuevo para mi los nombres de las funciones no los comprendo, bueno muchas gracias te sigo! espero aprender a hacer + cosas, salu2

#include <iostream.h>

int main()
{
cout << "Hola Taringa!";
int x; cin >> x;
return 0;

}


↓ Aporto algo man! ↓

En Windows con el DEVc++ se compila presionando las teclas Ctrl + F9 / para compilar el texto y ejecutar al mismo tiempo solo presionen la tecla F9.
alx741 +1
Que bueno te salió! , no te preocupes por esas cuestiones ahora, pues este código es más bien para que sepan como compilar, no hace falta en lo absoluto que lo comprendan pues de eso nos encargarémos en los posts siguientes.

Y gracias por comentarnos eso!
kav32 +1
una pregunta, mi antivirus me detecta las compilaciones como virus o algo con el RootShell??? que hago pdta: tengo el kaspersky 2013
alx741
Ocurre que tienes un virus que infecta el ejecutable que te genera el compilador, puede ser que de momento no sea posible quitar el virus, la solución definitiva es reiinstalar el sistema operativo (formatear).

Saludos!
Ganjha-man +1
yo copie eso en el notepad y como o ejecuto amigo?
alx741
Porfavor lee el [día 0] , ahí se explica como hacerlo, y si luego hay alguna duda no dudes en preguntar

http://www.taringa.net/posts/hazlo-tu-mismo/17044983/No-sabes-programar-te-ayudo-aprende-C-en-21-dias-dia-0.html

Saludos!
viewmaster09
el C++ es una de las genialidades mas grandes que hay
alx741 +1
Exactamente!!
L30N1D45 +1
Hola, las variables deberias cambiarlas por que son viejas. iostream, std::cout
alx741
Es verdad, gracias por mencionarlo, sería más conveniente agregar luego de las incluciones la linea:
using namaspace std;
Saludos!
L30N1D45 +1
@alx741 Tambien aca a lo ultimo que te dije
int variable;
std::cin >> variable;
Gracias a vos empeze creando una "calculadora", y ahora estoy en el proyecto de auto apagado
yum_kimil +1
Gracias por seguir con el post

Yo tuve problemas al compilarlo, incluso copie y pegue con Ctrl "C" y "V" y nada, decía "#warning This file includes at least one deprecated or antiquated header. "

Así que cree otro proyecto y tome de ejemplo el que mostraba el compilador y obtuve algo asi:

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
cout << "Hola Mundo X";
return 0;
}
sin errores al compilar el problema apareció cuando lo decidí ejecutar y es que abre una venta para mostrar el texto pero así como aparece así se va y no muestra nada (se que la ultima linea o una de estas están mal al final pues programaba en pascal en el bachillerato llevaba la clase se cibernetica).

así que decidí cambiar la ultima linea y quedo así

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
cout << "Hola Mundo X";
system("PAUSE";
}

Y al ejecutarlo paro y pudo mostrar el mensaje , sin embargo el problema fue que mostró también la leyenda " Presione una tecla para continuar..." se puede arreglar dando los pasos correctos y así mostrar "Hola Mundo X, Presione una tecla para continuar..."

Después di un vistazo a los comentario y me encontre con la siguiente linea de @x__bl4ckh34rt "int x; cin >> x;" (ya lo habías mencionado en un comentario que se debía poner esto para parar el programa y mostrara el texto) así que decidí cambiarla y por fin pude compilarlo solo mostrando el mensaje "Hola Mundo X"

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
cout << "Hola Mundo X";
int x; cin >> x;
return 0;
}

Solo puedo decir que espero sigas con esto ya que me gustaria aprender este lenguaje de programación . Me gustaria preguntar el significado de las funciones para comprender mejor lo que hice ya que solo tengo una vaga idea, pero leí los comentarios y mencionas que eso va hacer para mas adelante. Así que sin mas por el momento te dejo +10 y lo agrego a favoritos!!
alx741 +1
Me alegra mucho que te haya sido útil, sin embargo deje de publicar esta serie de posts hace muchisimo, por que la acogida que tuvo en relación al esfuerzo/tiempo requerido para hacerlo no resultó adecuado, aún así creo que considerare retomarlo en el futuro cercano.
Saludos Cordiales.
yum_kimil +1
@alx741 gracias por contestar, te agradeceria que lo retomaras en el futuro si puedes, de todas formas gracias checare los otros post como apoyo
Rayo36 +1
Gracias por la informacion, descargue Xcode para Mac y queria consultarte de algun tutorial para usar el programa, yo he usado C++ para windows, pero no estoy muy familiarizado con todas las características de Xcode, ojalá me puedas ayudar, saludos.
alx741
La verdad no puedo ayudar mucho con eso, uso GNU/Linux y software libre, y para colmo tampoco me gusta usar IDE's ni interfaces gráficas, con lo cual no tengo idea alguna del uso de Xcode ni material sobre él. Lo que si te puedo decir es que a veces es por lejos mucho mejor leer la documentación oficial que buscar un 'tutorial'. Saludos
loquendoxdxdxd -1
Imprima en pantalla todos los números del 0 al 1000 y cada vez que aparezca un múltiplo de cien haga que la maquina emita un alerta

HELP!!!
alx741 -1
for(int i=0; i<=1000; i++)
{
if( (i%100) == 0){ cout << "Multiplo de 100!<< endl; }
}