[TUTORIAL] Programando en C

1, 2, 3, 4, 59
wow realmente me alaga que lo hayas posteado en un IES =P
Gracias por decírmelo, y ningún problema, al revés, estoy encantado!
hola!

Si no lo hago con el Visual Studio (lo haré con Eclipse), qué debo poner en vez de ( #include <stdio.h> )?

gracias!
Pues exactamente lo mismo, el codigo es "universal", independientemente de que compilador/programa uses el código va a ser el mismo.
vamosajugar escribió:hola!

Si no lo hago con el Visual Studio (lo haré con Eclipse), qué debo poner en vez de ( #include <stdio.h> )?

gracias!


Yo uso Notepad++ k no tiene compilador y asi es independiente de todo (Ademas soporta la sintaxis de muchos mas lenguajes) y el codigo es el mismo XD, el editor es independientes, lo k importa es el compilador
vamosajugar escribió:hola!

Si no lo hago con el Visual Studio (lo haré con Eclipse), qué debo poner en vez de ( #include <stdio.h> )?

gracias!


Eclipse es un IDE, no un compilador, así que dependerá del que uses. Eso si, la biblioteca stdio.h es ANSI así que debería funcionar en cualquiera.
Yo uso NetBeans 9, y va muy bien.
Para los usuario de Mac, tambien esta para Mac OSX.

Se podria hacer una cosa cuando finalize el tuto... portarlo a PDF, no?
saludos
Como dicen los compañeros, da igual que IDE (programa para programar xd) utilices mientras tengas un compilador que acepte C. Y respecto al código, sigue siendo el mismo, por eso no os preocupéis.

Sí, me gusta la idea de pasarlo a PDF. Cuando lo tenga listo, lo haré un poco más bonito, y lo pasaré a PDF.

Ampliado, he empezando el capítulo de "Punteros I - Introducción". De momento solo explica un poco la memoria y como están organizadas las direcciones de memoria porqué me tengo que ir que he quedado. Cuando vuelva continuo explicando!

Salu2!
blipi escribió:Como dicen los compañeros, da igual que IDE (programa para programar xd) utilices mientras tengas un compilador que acepte C. Y respecto al código, sigue siendo el mismo, por eso no os preocupéis.

Sí, me gusta la idea de pasarlo a PDF. Cuando lo tenga listo, lo haré un poco más bonito, y lo pasaré a PDF.

Ampliado, he empezando el capítulo de "Punteros I - Introducción". De momento solo explica un poco la memoria y como están organizadas las direcciones de memoria porqué me tengo que ir que he quedado. Cuando vuelva continuo explicando!

Salu2!


Muy buena iniciativa

Saludos
me mola, ojalá me enseñaran asi en la carrera xD
bendito/puto C
Buena iniciativa, yo aporto mi pequeño granito de arena con los pdf's de C que tengo de la universidad, en los que viene bastante mascadito todo y que me sirvieron para iniciarme. Incluyen lo básico para empezar desde 0, tipos, variables, funciones, estructuras de control, estructuras de datos. Creo que debo tener también los de la segunda parte de la asignatura donde entra E/S, Pilas y colas (estructuras de datos dinámicas), y asignación de memoria dinámica. Si lo encuentro lo subo también, a alguno le puede ser útil.

http://www.multiupload.com/OMGQDBRFQC


Otra cosa, que la mejor forma de aprender programación, al menos para mí, es programando, haciendo cosas, viendo donde casca, entendiendo por qué, etc. Lo digo porque por leerte 6 pdf's y entenderlo todo no vas a saber programar, hay que pringar, como todo en esta vida.

Y sobre IDE's en la universidad tenían el Visual C++, pero yo usaba el DEV C++, que me resultaba más cómodo.

Un saludo.
Con Eclipse en un Mac:

Launch failed. Binary not found


Eso me sale cuando copio tu "Hello World" y le doy al simbolito de "play", que supongo que será como un ejecutar o algo así.

Y este es el Hello World que me pone automático el programa si lo selecciono:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
   puts("!!!Hello HHHH World!!!"); /* prints !!!Hello World!!! */
   return EXIT_SUCCESS;
}


gracias, quiero aprender!!!!!:)
Buen post! Five stars.

Me suscribo y la idea de portarlo a pdf esta dpm.
Cowa está baneado por "clon de usuario baneado"
Hombre, en C básico básico, un Hello World (para cargarlo desde la consola de Windows) sería algo tal que así:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   printf("Hola Mundo!\n\n\n");
   
   system("pause");
   return 0;
}
Cowa escribió:Hombre, en C básico básico, un Hello World (para cargarlo desde la consola de Windows) sería algo tal que así:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   printf("Hola Mundo!\n\n\n");
   
   system("pause");
   return 0;
}



Y más básico aún si quitas system("pause"); y #include <stdlib.h> [beer] Y dentro del main el void así: int main(void)
A ver, todos estos Hello World están bien.
Respecto al primero: Parece ser que el archivo se compila bien, pero no puede ejecutarlo porqué no lo encuentra:
  • Asegurate de que estás compilando un ejecutable (el tipo de proyecto)
  • De ser así, vete a la carpeta donde tengas el proyecto (codigo) y busca el ejecutable y ejecútalo tú.

Solo deciros que, aquellos que hagáis Hello World sin ningun tipo de pausa, y los ejecutéis directamente, como seria tu caso o el que dice de quitar el system("pause"), apenas llegaréis a ver la consola y se cerrará. Si lo quitáis, debéis iniciar el programa desde la misma consola, para poder seguir viendo el resultado.

El tema de system("pause"), si que es verdad que es una buena "solución", pero por el momento prefería usar solo getchar() y evitar incluir más archivos y liar más a la gente que empieza.

PD:
Añadido capítulos:
Punteros I - Introducción
Operando con las cadenas de texto
Una persona con ninguna experiencia programando...¿Cuanto puede tardar en aprender a programar en C++? No de forma profesional, sino para defenderse.

Por cierto, gracias por el tutorial.
Ombre... depende de lo que entiendas por defenderte...
Yo no quiero desanimar a nadie, y todo depende del entusiasmo con que te lo cojas.

Es que depende de lo que quieras hacer y de lo complicado que sea lo que quieras hacer.

Mira, si te sirve de algo, yo aun no soy mayor de edad, no voy a decir mis años xd, y C es uno de los lenguajes que conozco. Personalmente antes de empezar con C++ empecé con edición web HTML, luego Visual Basic, luego PHP y luego C++. Lo que vengo diciendo con esto es que quizás empezar con C no sea fácil, puesto que es un lenguaje un poco rebuscado en algunos aspectos, pero no es ni mucho imposible, si le pones ganas, y practicas, practicas mucho, no basta con solo leer, lo puedes tener aprendido pronto (pronto = contando en mes/meses).
Ya dije en la introducción del tuto, que no esperaseis aprender C (o C++) en un día, (ni en dos xd).

Si me dices un poco más lo que quieres "llegar a hacer" te puedo dar una orientación un poco mas aproximada quizás, aunque como ya he dicho, esto depende mucho de la persona y de las ganas.
blipi escribió:Ombre... depende de lo que entiendas por defenderte...
Yo no quiero desanimar a nadie, y todo depende del entusiasmo con que te lo cojas.

Es que depende de lo que quieras hacer y de lo complicado que sea lo que quieras hacer.

Mira, si te sirve de algo, yo aun no soy mayor de edad, no voy a decir mis años xd, y C es uno de los lenguajes que conozco. Personalmente antes de empezar con C++ empecé con edición web HTML, luego Visual Basic, luego PHP y luego C++. Lo que vengo diciendo con esto es que quizás empezar con C no sea fácil, puesto que es un lenguaje un poco rebuscado en algunos aspectos, pero no es ni mucho imposible, si le pones ganas, y practicas, practicas mucho, no basta con solo leer, lo puedes tener aprendido pronto (pronto = contando en mes/meses).
Ya dije en la introducción del tuto, que no esperaseis aprender C (o C++) en un día, (ni en dos xd).

Si me dices un poco más lo que quieres "llegar a hacer" te puedo dar una orientación un poco mas aproximada quizás, aunque como ya he dicho, esto depende mucho de la persona y de las ganas.


jaja k crack estas hexo xaval, yo toy haciendo una ingenieria y tengo programacion en C/C++ y lo k peor llevo son los punteros, pero weno, ahora lo que no me queda claro es.... pork utilizas sprintf para escribir en pantalla y no un printf???

Nosotros en la uni utilizamos scanf que a pesar de ser una funcion no segura, de forma introductoria es más facil entenderlo para nosotros ^^ (esque me a parecido entender que usas sprintf para poder tomar los valores que declaramos en main , por eso te digo lo del scanf xD, y siempre para valores decimales).

De nuevo, enhorabuena, esto sí que es realmente útil, y tranquilo que seguiré este tuto y haciendote preguntillas oki?
Un saludo
vamosajugar escribió:Con Eclipse en un Mac:

Launch failed. Binary not found


Eso me sale cuando copio tu "Hello World" y le doy al simbolito de "play", que supongo que será como un ejecutar o algo así.


Tienes que tener el GCC instalado, para ello en Mac lo más sencillo es que te descargues el XCode (que te descarga todo el toolchain de gcc y otras herramientas gnu).

Una forma facil de saber si tienes instalado el GCC es que abras un terminal (escribe dentro del spotlight 'terminal' y aparecera) y ejecutes en la consola el comando: gcc --version , si sale entonces es que ya lo tienes instaladito, si no te dira "command not found".

En cuanto a usar netbeans como IDE en mac, no se si te pilla directamente la configuración del gcc (imagino que si) o si tendrás que seleccionar los paths.

Un saludo & espero que te ayude!
vamosajugar escribió:Con Eclipse en un Mac:

Launch failed. Binary not found


Eso me sale cuando copio tu "Hello World" y le doy al simbolito de "play", que supongo que será como un ejecutar o algo así.

Y este es el Hello World que me pone automático el programa si lo selecciono:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
   puts("!!!Hello HHHH World!!!"); /* prints !!!Hello World!!! */
   return EXIT_SUCCESS;
}


gracias, quiero aprender!!!!!:)


Te da error porque no hay nada compilado. No se como sera el eclipse pero seguro que hay un menu build o compile o make. Despues ya puedes darle al play.
Uso sprintf simplemente para enseñar como se hace para "guardar" un texto en una variable.
Es decir, tu podrías hacer directamente:
printf("%x", 5);

y ya tendrías un 5 en pantalla, pero para mostrar un poco como hacerlo si quieres guardarlo en una variable de texto, estoy enseñándolo con sprintf
char texto[100];
sprintf(texto, "%d", 5); //ahora texto es "5"
printf(texto);


Haces exactamente, pero más largo. La intención es simplemente mostrar como utilizar el sprintf, que es realmente muy útil.
Realmente, sprintf no escribe en pantalla, lo unico que hace es guardar el valor en la variable "texto", y luego mediante printf mostramos la variable texto en pantalla.

Esto quizás debo aclararlo un poco en el tuto. También, en el último capitulo, explicaré la función sprintf, no se si hoy (entendiendo por hoy el dia 2, no dia 3 pk ya son las 00.00 xd) o mañana.
A todos los que empezais, os diria que no useis un IDE complejo como pueda ser el VC, NetBeans o Eclipse, sobre todo porque obligan a crear un proyecto para poder compilar un misero archivo (un coñazo a todas luces) y porque ayudan a escribir código. Esto último parece una contradicción ¿verdad? pero es que escribiendo a pelo es como mejor se aprende. Vale... se puede desactivar el autocompletado, pero entonces, ¿para qué quieres el IDE?

Editores:
Para Windows: Notepad++
Para GNU/Linux: Kate, Gedit, ...

Compilador:
Para GNU/Linux: GNU toolchain
Para Windows: Algun port de GNU toolchain como Mingw (cgywin está al pelo para familiarizarse con el terminal de sistemas GNU/Linux)

Para instalar cualquiera de ellos existen infinidad de tutoriales.

La única pega de compilar sin IDE es que hay que escribir la orden de compilación, ahora que estais empezando bastará
gcc archivoFuente -o nombreEjecutable

o la versión corta:
make archivoFuente(sin la extensión)


Despues de esto toca aprender a hacer makefiles (o usar alguna utilidad que los autogenere), que es como realmente se compilan los proyectos, pero eso da para otros muchos posts.

Aprovecho para recomendar que instaleis alguna distribución de GNU/Linux en otra partición.
Mm.. estoy un poco en desacuerdo contigo.
Estoy de acuerdo en que el auto-completado no ayuda a aprender a programar, pero el VC no es un buen ejemplo, ya que no auto-completa, se limita a decirte los parámetros que requiere un función, y eso, lo quieras o no, va muy bien, tanto si empiezas como si tienes mucha mili.

Es mas, usando compilador sin interfaz gráfica, no digo que sea malo ni muchos menos, yo mismo compilo con un makefile, pero, crear un proyecto vacio en VC, que es como lo explico en este tuto, es 1 minuto (incluso menos si tienes práctica). Para gente sin experiencia en el campo de informatica, conseguir que hacer funcionar un compilador sin interfaz gráfica puede ser un martirio. Y luego, la comodidad de darle a un botón, que te compile sin pedirte explicaciones y que te auto-ejecute el programa, no tiene precio xd. Aun más, si te equivocas, dando un simple doble clic te manda a la línea donde hay el error. Se que gcc te dice la linea, pero bueno.

A mi parecer, mientras no te lo auto-complete propiamente dicho, no veo ningún problema en usar IDE.
Pues no sabría que decirte de la dificultad de instalar un compilador sin interface en Windows, la última vez que lo hice, hace a saber cuanto, la instalación modificó el PATH, no tuve que hacer nada de nada.
Respecto al tema de compilar desde la GUI, si, siempre es más comodo darle al atajo de teclado, pero a mi personalmente me amarga tener que crear un proyecto para compilar un archivo, prefiero hacerlo a pelo, tal vez porque desde el principio lo hice de esa forma. Dev-C++ creo que sí permite compilar archivos sueltos.
Bua que currada colega, ademas mas claro que el agua.
Me suscribo al hilo y a favoritos va. Hace años aprendí nociones básicas de C y por falta de uso pues acabe olvidandolo, pero en los 10 minutos que he pasado leyendo (por la hora que es no voy a seguir hasta mañana) habria aprendido mas que con mi pésimo profesor de C en una semana, que era un puto funcionario negado que por un lado no tenia ganas de enseñar y por otro, a nada que te tomaras la molestia de currartelo un poco fuera de clase, gracias a gente como tu lo dejabas al pobre como un gilipollas, ya que no entendía programas con resultados iguales a lo que el pedía en sus ejercicios pero con 10 lineas de código menos.

Lo dicho, gracias a tu claro tutorial voy a retomar C, así que espero que lo sigas adelante.

Lo único, lo veo desaprobechado en la secciona de PS3 cuando es aplicable a prácticamente cualquier cosa que tenga un chip programable, desde una PIC hasta la ps3 pasando por PC.

Gracias ;)
Que no caiga éste hilo. Para alguien que hace un hilo realmente útil y no las chorradas que se están creando ahora mismo por hilos...
Muy buenas. Decir que me suscribo a este hilo, ya que estoy en mi peregrinaje para aprender, primero C, luego C++, despues Python, y finalmente Java.
Ahora estoy con C, el cual es un lenguaje que me está encantando.
Me he leido y releido un libro que mas o menos hace un resumen de la programacion en C, sobre todo me lo releí para quedarme perfectamente con los punteros y arrays bidimensionales, ya que la primera vez que tratas con ellos, te choca un poquito, aunque luego es simple.

Ahora ya estoy con otro libro mucho mas "profundo" sobre C , que supongo que cuando mas avance en él, y cuando vaya haciendo programas mas complejos, tendré la duda resuelta... pero ahora mismo no.

Mi duda es que usas mucho la funcion "sprintf()", la cual, ni estaba en el libro resumen de C.

Por ejemplo en esta parte de codigo del primer post la empleas:


int var = 70;
int *p;
p = &var;

char texto[300];
sprintf(texto, "Contenido var: %d, contenido de la dirección en que apunta el puntero p: %d, dirección de var: 0x%x, contenido del puntero: 0x%x", var, *p, &var, p);
/*Fijaros en la segunda variable que se sustituye, pone *p, justo lo que os explicaba.*/

printf(texto);



Pudiendo simplificarse simplemente con el printf() así, y sin necesidad de reservar 300 bytes de memoria ram para la variable texto:


int var = 70;
int *p;
p = &var;

printf("Contenido var: %d\nContenido de la dirección en que apunta el puntero p: %d\nDirección de var: 0x%x\nContenido del puntero: 0x%x\n\n", var, *p, &var, p);

system("Pause");


Esa es mi duda ahora mismo. Deduzco al tener tu un conocimiento exahustivo ya de C, habiendo hecho bastantes programas, te has acostumbrado a usar la funcion sprinf(), en este caso para almacenar el resultado en la variable texto. Y luego poder usar esa variable (texto), ademas de con printf(), con otras funciones en otras partes de codigo del programa, ¿no?
Es que sino, ahora mismo no le vería sentido.
EDITO: Acabo de leer el ultimo y penultimo hilo de este post y lo has explicado.

Otra duda. Una vez que se domina a la perfección C. ¿C++ que es una evolución de éste, se aprende rápido?

ciao, y estaré atento a este hilo, sin duda alguna me va a venir muy bien como repaso, y para resolver preguntas que tenga.
Hola, sí, tal y tu dices usar un sprintf no tiene sentido alguno, es más que nada para enseñar una función que muchas veces nos será muy útil, sobretodo en programación para PS3 donde no hay uso de printf. Sí, usar sprintf tiene más sentido si luego necesitar esa variable en posteriores funciones.
Tal y como respondí a un compañero que también tenía una duda similar, lo puedes hacer perfectamente con printf y ahorrarte reservar esa memoria.
Ahora lo aclararé un poco en el tuto el tema de printf/sprintf

Respecto a C++, si te soy sincero, yo nunca había programado en C y llevo casi 1 mes haciendo homebrew en C. Lo que quiero decir es que C y C++ son prácticamente iguales.
C++ añade algunos tipos de variable más, tal y como voy comentando ya a lo largo del tutorial, para facilitarte un poco la vida. Del mismo modo, te facilita la vida al declarar estructuras (struct), uniones (union) y enumeraciones (enum).
Diferencias así más destacables es que C++, a diferencia de C, esta orientado a objetos, así pues el "printf("Hola Mundo");" se convertiría en "cout << "Hola Mundo";". Pero, si en C++ quisieras usar la función printf, propia de C, no tendría ningún problema.
Realmente no es muy difícil "hacer el salto" al otro, son como "hermanos", simplemente tienes que acostumbrarte a una sintaxis diferente.
Buen curro ya tienes la chincheta.

En cuanto tenga tiempo busco mis programs de mis años de estudiante XD y los subo.
Muchas gracias por el curro.
Siempre he querido aprender a programar asi que voy a intentarlo xD

un saludo
blipi escribió:Hola, sí, tal y tu dices usar un sprintf no tiene sentido alguno, es más que nada para enseñar una función que muchas veces nos será muy útil, sobretodo en programación para PS3 donde no hay uso de printf. Sí, usar sprintf tiene más sentido si luego necesitar esa variable en posteriores funciones.
Tal y como respondí a un compañero que también tenía una duda similar, lo puedes hacer perfectamente con printf y ahorrarte reservar esa memoria.
Ahora lo aclararé un poco en el tuto el tema de printf/sprintf

Respecto a C++, si te soy sincero, yo nunca había programado en C y llevo casi 1 mes haciendo homebrew en C. Lo que quiero decir es que C y C++ son prácticamente iguales.
C++ añade algunos tipos de variable más, tal y como voy comentando ya a lo largo del tutorial, para facilitarte un poco la vida. Del mismo modo, te facilita la vida al declarar estructuras (struct), uniones (union) y enumeraciones (enum).
Diferencias así más destacables es que C++, a diferencia de C, esta orientado a objetos, así pues el "printf("Hola Mundo");" se convertiría en "cout << "Hola Mundo";". Pero, si en C++ quisieras usar la función printf, propia de C, no tendría ningún problema.
Realmente no es muy difícil "hacer el salto" al otro, son como "hermanos", simplemente tienes que acostumbrarte a una sintaxis diferente.


Eso es que no conoces C++.

Salu2
Estoy practicandolo, pero al hacer alguna "aplicación(si se puede llamar asi)" para la consola, nada mas aparecer se cierra. Solo me pasa cuando uso la consola con este fin, si la uso para hacer cualquier otra cosa funciona perfectamente. ¿Como puedo solucionarlo?

Uso windows 7 y microsoft visual studio 2010.
lol, mellon, te has siquiera leído el párrafo entero?
la mayor diferencia entre C++ y C es que una está orientado a objetos (C++) y la otra a estructuras (C), tal y como he dicho en ese párrafo. Y ahora me dirás que adaptarte a esto es una brutalidad inhumana, ¿no?

En C++ me he dedicado a hackear juegos online enteros, de arriba a abajo, he llegado a hacer bots donde tu te sentabas y mirabas solamente. Por favor, antes de criticar sin ton ni son, pregunta.
C y C++ son primos-hermanos prácticamente. Y si eres capaz de programar a buen nivel en C y no en C++ o al revés, por favor, revisa que realmente sepas programar en estos lenguajes.
En c++ se trabaja con clases y en C con estructuras, es la mayor diferencia, lo demas son añadidos y quitados y modificados XD
Suscrito al hilo. Muchas gracias y ánimo.
alpha_19_ escribió:Estoy practicandolo, pero al hacer alguna "aplicación(si se puede llamar asi)" para la consola, nada mas aparecer se cierra. Solo me pasa cuando uso la consola con este fin, si la uso para hacer cualquier otra cosa funciona perfectamente. ¿Como puedo solucionarlo?

Uso windows 7 y microsoft visual studio 2010.


Una ayudita, porfavor.
blipi escribió:lol, mellon, te has siquiera leído el párrafo entero?
la mayor diferencia entre C++ y C es que una está orientado a objetos (C++) y la otra a estructuras (C), tal y como he dicho en ese párrafo. Y ahora me dirás que adaptarte a esto es una brutalidad inhumana, ¿no?

En C++ me he dedicado a hackear juegos online enteros, de arriba a abajo, he llegado a hacer bots donde tu te sentabas y mirabas solamente. Por favor, antes de criticar sin ton ni son, pregunta.
C y C++ son primos-hermanos prácticamente. Y si eres capaz de programar a buen nivel en C y no en C++ o al revés, por favor, revisa que realmente sepas programar en estos lenguajes.


Claro si sabes programar en C, sabes programar en C++? Es decir la programacion orientada a objectos es un simple addon de C?

Si sabes programar en C puedes adaptarte facilmente a programar en C++ aprendiendo las nuevas rutinas. Eso no quiere decir que sepas programacion orientada a objectos ni utilizar todos los recursos que proporciona C++. Porque claro: clases, plantillas, espacios de nombres, sobrecarga de operadores, herencias, toda la STL, etc... Son simples añadidos de C, no? Es solo "sintaxis"?

Y repito decir es C++ es "practicamente igual" a C es no saber de lo que se esta hablando, ya que profundizar en C++ al mismo nivel que en C, es quedarse a las puertas.

Salu2
Pues se nota que no has profundizado mucho en C, no creas que c++ es un lenguaje totalmente nuevo y revolucionario pk es C retocado, no es un addon de C, es un MOD de C, añade cosas y modifica cosas, pero viene a ser el mismo lenguaje, no alaves tanto C++ pk C tiene la misma potencia
marioga escribió:Pues se nota que no has profundizado mucho en C, no creas que c++ es un lenguaje totalmente nuevo y revolucionario pk es C retocado, no es un addon de C, es un MOD de C, añade cosas y modifica cosas, pero viene a ser el mismo lenguaje, no alaves tanto C++ pk C tiene la misma potencia


No estoy alavando ni desprestigiando a ninguno de los dos. Cada uno tiene sus propositos y es mejor dependiendo de lo que quieras programar. Sólo digo que saber C no implica un conocimiento de C++ y que saber C no significa saber programacion orientada a objectos, la cual no es un MOD de C.

Salu2
@alpha_19_
perdon por no responder tu duda antes, no vi el post. Incluyes antes del "return 0;" algún tipo de pausa, ya sea el getchar(); o el system("pause") explicados en este tuto? De ser así, pasate por el final del capítulo 5, allí tienes el programa al completo. Asegurare que tienes lo mismo.

@mellon
Mira, yo no quiero hacer de esto una guerra, si después de leer mi respuesta sigues empeñado en discutir, mandame un MP y lo hacemos por allí, no quiero desvirtuar el tema del hilo.
1. Te pasa algo conmigo o con que quiera ayudar a la comunidad?
2. Nunca he dicho que saber programar en C implique tener todos los conceptos de C++ aprendidos, he dicho que saber C igual a saber programar en C++, y tampoco he dicho nunca que aprovechando todo su potencial. Eso lo has dicho tu. Si sabes programar en C, sabes programar en C++, y viceversa. Aunque no lo aproveches al máximo.
3. Lo que hace C++ y no C, lo pones porque tu crees que yo no lo se?
4. Y si, temo decirte que todo lo que no hace C y si hace C++ son añadidos a C. Sino, porque comparten todos los archivos de base?
blipi escribió:@alpha_19_
perdon por no responder tu duda antes, no vi el post. Incluyes antes del "return 0;" algún tipo de pausa, ya sea el getchar(); o el system("pause") explicados en este tuto? De ser así, pasate por el final del capítulo 5, allí tienes el programa al completo. Asegurare que tienes lo mismo.

@mellon
Mira, yo no quiero hacer de esto una guerra, si después de leer mi respuesta sigues empeñado en discutir, mandame un MP y lo hacemos por allí, no quiero desvirtuar el tema del hilo.
1. Te pasa algo conmigo o con que quiera ayudar a la comunidad?
2. Nunca he dicho que saber programar en C implique tener todos los conceptos de C++ aprendidos, he dicho que saber C igual a saber programar en C++, y tampoco he dicho nunca que aprovechando todo su potencial. Eso lo has dicho tu. Si sabes programar en C, sabes programar en C++, y viceversa. Aunque no lo aproveches al máximo.
3. Lo que hace C++ y no C, lo pones porque tu crees que yo no lo se?
4. Y si, temo decirte que todo lo que no hace C y si hace C++ son añadidos a C. Sino, porque comparten todos los archivos de base?


No, no, me parece perfecto esta iniciativa y es por eso que sigo el hilo, sino no me hubiese molestado ni en escribir.
Lo unico que he hecho es puntualizar que C++ es mucho mas que un extension de C, y permite hacer muchas cosas que en C no puedes. Mi descripcion ha sido para dar idea de lo que hablo y para que si ha alguien le interesa pueda buscar mas informacion y pueda contrastar los conceptos que introduce C++ respecto a C.
Respecto a porque comparten librerias es porque C++ esta basado en C y por temas de compatibilidad se incluyen las librerias de C. Un añadido seria lo que han ido aportando los diferentes estandares de C (entre otras muchas cosas, características de C++)

Animo con el proyecto.

Salu2
Gracias socio por este pedazo de curro.

Un saludo [oki]
Señores, haya paz, no creo que nadie tenga interés en que cierren el hilo. Mellon tiene razón en lo que dice, aunque no lo haya expuesto de la mejor manera, tampoco hay que olvidar que esto es un foro y lo que se escribe puede resultar muy seco.

En lo referente al tema, si se escribe C se puede compilar con C++, pero eso es porque C++ incluye a C (y por tanto es un lenguaje multiparadigma), se puede aprender la sintaxis de C++ por muy poco precio si previamente conoces la de C, también mucho de la de Java y en general la de cualquier lenguaje imperativo al uso (SmallTalk es un ejemplo de un lenguaje OO con sintaxis diferente), pero eso no es saber C++ ni Java puesto que no se sabe ni programación genérica ni la orientada a objetos, sí, estos paradigmas están próximos, pero no son iguales. El problema reside en el cambio de paradigma, aprenderlo, comprenderlo y aplicarlo correctamente no es trivial, no basta usar clases y objetos para realizar programar OO, también se puede hacer programación procedural usando clases y objetos, no hay mas que poner todos los métodos estáticos y ya tienes, probablemente de la forma menos guarra, una guarrada OO-procedural. La diferencia entre conocer el paradigma y no conocerlo se hace absolutamente patente cuando nos movemos del paradigma imperativo al declarativo donde encontramos lenguajes como Haskell o Prolog que tienen una sintaxis y una filosofía completamente diferentes.
Es buenísimo tío, no sabes la ilusión que me ha hecho el abrir mi primer programa programado por mi mismo =)

Todavía voy por el capítulo 6 y ya creo que se algo xD.

Me gustaría que el tutorial estuviese acabado, vamos que lo completaras y no nos dejes tirados a los que queremos aprender esto. Entiendo que tienes vida, pero te aclaro que esto no es que te esté metiendo prisa ni mucho menos, sino que te animo para que te esfuerces en los ratillos que tengas libres y que completes el tuto poquito a poquito, pero que lo completes, más que nada porque me está pareciendo excelente y me voy enterando de todo, cosa que no había conseguido nunca antes con ningún tuto de C. Así es que muchísimas gracias por el tutorial...esperamos muchos más capítulos, al menos yo xD

Ya pronto me veréis exponiendo dudas y preguntado posibilidades =)


Un saludo tio! :)
Kratos222 está baneado por "Troll"
todo esto para que sirve?
Kratos222 escribió:todo esto para que sirve?

Para jugar al GT5
alpha_19_ escribió:
alpha_19_ escribió:Estoy practicandolo, pero al hacer alguna "aplicación(si se puede llamar asi)" para la consola, nada mas aparecer se cierra. Solo me pasa cuando uso la consola con este fin, si la uso para hacer cualquier otra cosa funciona perfectamente. ¿Como puedo solucionarlo?

Uso windows 7 y microsoft visual studio 2010.


Una ayudita, porfavor.

Te comento, es fácil que se te cierre. Yo programo en c++ y el problema estará en el system("PAUSE") debes añadir la librería correspondiente (al principio del hilo esta) y ponerlo justo antes del return 0;

Te explico el por que pasa eso. Cuando creas el exe el programa muestra por pantalla el mensaje pero rápidamente lo cierra y es porque el microprocesador lee las instrucciones al instante y al llegar al return cierra la consola porque se le esta indicando en el código que no tiene que hacer nada mas. Si le ponemos el system("PAUSE") le indicamos al programa que queremos una pausa antes de que lo cierre y asi podamos leer el resultado.

Espero serte de ayuda y llegar a tiempo
DeathWalk escribió:
Kratos222 escribió:todo esto para que sirve?

Para jugar al GT5


jajaja, muy buena XD

sergiojose escribió:Es buenísimo tío, no sabes la ilusión que me ha hecho el abrir mi primer programa programado por mi mismo =)

Todavía voy por el capítulo 6 y ya creo que se algo xD.



Te recomiendo, que antes de empezar la casa por el tejado, te empapes de algunas nociones básicas pre-lenguaje de programación (en este caso C).
Como por ejemplo, , tener unos conocimientos, al menos elementales de la arquitectura que conforma un ordenador, saber manejarte entre bytes, bits. Saber manejarte entre numeros en HEX, DEC, OCT, y sobre todo, saber diseñar perfectamente tus algoritmos previamente, mediante pseudocodigos o diagramas (esto es fundamental, mas incluso que el saber un lenguaje de programacion).

Una vez tengas estos conocimientos mínimos, a saco a por C, o a por lo que quieras.

Es como si quieres aprender ingles, y lo primero que haces es coger un diccionario para empollartelo.
JaJeJJ escribió:
alpha_19_ escribió:
alpha_19_ escribió:Estoy practicandolo, pero al hacer alguna "aplicación(si se puede llamar asi)" para la consola, nada mas aparecer se cierra. Solo me pasa cuando uso la consola con este fin, si la uso para hacer cualquier otra cosa funciona perfectamente. ¿Como puedo solucionarlo?

Uso windows 7 y microsoft visual studio 2010.


Una ayudita, porfavor.

Te comento, es fácil que se te cierre. Yo programo en c++ y el problema estará en el system("PAUSE") debes añadir la librería correspondiente (al principio del hilo esta) y ponerlo justo antes del return 0;

Te explico el por que pasa eso. Cuando creas el exe el programa muestra por pantalla el mensaje pero rápidamente lo cierra y es porque el microprocesador lee las instrucciones al instante y al llegar al return cierra la consola porque se le esta indicando en el código que no tiene que hacer nada mas. Si le ponemos el system("PAUSE") le indicamos al programa que queremos una pausa antes de que lo cierre y asi podamos leer el resultado.

Espero serte de ayuda y llegar a tiempo


Gracias, ya lo he solucionado. Ahora para que se cierre hay que pulsar una tecla, funciona "al pelo".

Animo con el tutorial blipi!

Edito: !ojo! para que no le pase a nadie mas, hay que poner ";" despues de "system("pause")".
Entonces se quedaria asi: "system("pause");"
Muchas gracias por el tutorial....iniciativas como ésta son las que hacen falta!!!
448 respuestas
1, 2, 3, 4, 59