Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: apoeti en 3 Julio 2013, 16:24 pm



Título: Volver a programar
Publicado por: apoeti en 3 Julio 2013, 16:24 pm
Hola a todos.
Llevo bastante tiempo sin programar nada en C y estoy un poco verde ahora mismo. Me gustaría refrescar un poco los conocimientos y no quiero leerme un manual completo, simplemente necesito algunos sources que incluyan conceptos "avanzados" (structs, pointers, arrays, uso de ficheros, sockets...) ¿Conocéis alguna recopilación de este estilo?

Edito: Vale, ya he encontrado una en el foro xDDD

Eso sí, si me podéis dar algún otro consejo para retomar con éxito la programación en C (he olvidado algunas cosas) os lo agradecería.


Título: Re: Volver a programar
Publicado por: daryo en 3 Julio 2013, 16:27 pm
http://foro.elhacker.net/programacion_cc/recopilatorio_sources_interesantes-t298479.0.html

viendo los codes y practicando seguro te acuerdas jeje


Título: Re: Volver a programar
Publicado por: apoeti en 3 Julio 2013, 16:57 pm
Ok, thx, a ver qué tal se da el asunto xD


Título: Re: Volver a programar
Publicado por: amchacon en 3 Julio 2013, 17:11 pm
Yo me iría más a C++:
http://minidosis.org/C++/


Título: Re: Volver a programar
Publicado por: apoeti en 3 Julio 2013, 17:13 pm
Ya, pero es ya estoy aprendiendo Python, que maneja POO, así que de momento no le veo demasiada utilidad. Tengo intención de empezar cuanto antes a aprender lenguajes de programación de Internet (PHP, HTML, javascript...).


Título: Re: Volver a programar
Publicado por: amchacon en 3 Julio 2013, 17:15 pm
Ya, pero es ya estoy aprendiendo Python, que maneja POO, así que de momento no le veo demasiada utilidad. Tengo intención de empezar cuanto antes a aprender lenguajes de programación de Internet (PHP, HTML, javascript...).
C++ es multi-paradigma. Puedes usarlo sin orientarlo a objetos.

La diferencia con C esque tiene una sintaxis más flexible y las librerías estándares son más potentes y flexibles.


Título: Re: Volver a programar
Publicado por: apoeti en 4 Julio 2013, 14:15 pm
Venga, va, te haré caso. Total, no creo que sea muy difícil portar lo aprendido de C a C++, ¿no?


Título: Re: Volver a programar
Publicado por: daryo en 4 Julio 2013, 14:22 pm
Venga, va, te haré caso. Total, no creo que sea muy difícil portar lo aprendido de C a C++, ¿no?
c++ es mas facil que c


Título: Re: Volver a programar
Publicado por: eferion en 4 Julio 2013, 14:51 pm
c++ es mas facil que c

jejeje

va a ser que no.

En c no tienes que lidiar con sobrecarga de funciones y operadores, polimorfismo, herencia...

En c es más complicado hacer aplicaciones grandes porque no tienes encapsulación y tienes que andar con pies de plomo... pero c, para aprender, es muuuucho más facil.

Lo que pasa es que el que aprende c++ después de aprender c... es casi un paseo.


Título: Re: Volver a programar
Publicado por: daryo en 4 Julio 2013, 14:57 pm
..........
el manejo de programacion orientada a objetos es opcional y todo lo referente a ella , ademas decir que la libreria estandar de c++ es mucho mas clara y sencilla en casi todo desde manipular cadenas o archivos , hasta el uso de memoria dinamica, no mas el cout y el cin suele ser mas facil de comprender para los novatos y eso lo se por experiencia personal y de algunos compañeros


Título: Re: Volver a programar
Publicado por: eferion en 4 Julio 2013, 15:04 pm
Aprender a montar en coche no es saber encenderlo y meter primera... hay que dominar muchos más aspectos para poder decir que alguien sabe conducir.

Para aprender a programar en c++ tienes que aprender no solo a manejar la stl, sino también cómo funciona el concepto de clase, qué es el polimorfismo y cómo se explota, como funciona la herencia, de qué formas se pueden sobrecargar operadores, implicaciones del constructor copia y del operador de asignación, responsabilidad de los destructores...

Si te limitas a manejar la stl y todo con lenguaje procedural no estás programando en c++.


Título: Re: Volver a programar
Publicado por: daryo en 4 Julio 2013, 15:09 pm
...
bueno no le puedes decir a un novato que empieze por ahi xD , es como aprender c iniciandose por sockets. entiendo lo que quieres decir pero  no hace falta manejar esos conceptos para iniciarse en c++

(que sigo diciendo es mas facil iniciarse por ahi que por c claro es mi opinion solamente)


Título: Re: Volver a programar
Publicado por: eferion en 4 Julio 2013, 15:11 pm
bueno no le puedes decir a un novato que empieze por ahi xD , es como aprender c iniciandose por sockets. entiendo lo que quieres decir pero  no hace falta manejar esos conceptos para iniciarse en c++

Eso lo entiendo, pero claro, uno que está empezando no puede decir que sabe programar.

Hasta que no controla un mínimo todas esas cosas... que son conceptos clave del lenguaje no puede decir que sabe programar en c++.

Me baso simplemente en esto para decir que aprender c++ es más difícil que aprender c


Título: Re: Volver a programar
Publicado por: daryo en 4 Julio 2013, 15:13 pm
Eso lo entiendo, pero claro, uno que está empezando no puede decir que sabe programar.

Hasta que no controla un mínimo todas esas cosas... que son conceptos clave del lenguaje no puede decir que sabe programar en c++.

Me baso simplemente en esto para decir que aprender c++ es más difícil que aprender c
claro tiene mas conceptos y es mas flexible  y seria otra razon para escoger c++ ademas de que es mas sencillo al comienzo :)


Título: Re: Volver a programar
Publicado por: eferion en 4 Julio 2013, 15:34 pm
claro tiene mas conceptos y es mas flexible  y seria otra razon para escoger c++ ademas de que es mas sencillo al comienzo :)

Aún así... si alguien me dice que aprende más rápido c++ que c es porque no está aprendiendo lo que sucede por debajo cuando alguien crea una clase.

Esto se ve con facilidad cuando muchos no entienden que sea más óptimo pasar una clase a una función una referencia constante en vez de por valor.

C++ tiene muchísimas más cosas que C y para comprenderlos al mismo nivel el esfuerzo a realizar en c es siempre inferior.

Vale que manejar arrays de tipo char para las cadenas es algo confuso al principio... pero debe ser lo único... con c++ seguro que podemos sacar muuuchas más cosas.

Vuelvo al ejemplo, si alguien dice que sabe usar clases de c++ pero no sabe la diferencia entre un constructor copia y un operador de asignación... no sabe usarlas y, en el mejor de los casos, hará un uso incorrecto e inadecuado de ambos por mero desconocimiento.

Creo que es peligroso que alguien crea que controla sobre algún tema cuando realmente solo ha alcanzado a arañar la superficie.


Título: Re: Volver a programar
Publicado por: amchacon en 4 Julio 2013, 16:07 pm
Hemos dicho no orientarlo a objetos, ergo no vamos a usar clases y no tenemos polimorfismo.

Yo creo que es más fácil por la librería estándar y esque cin -> scanf y cout -> printf. No tendrá tampoco que pelear con los caracteres, porque podrá usar strings. Para array dinámicos tiene la clase vector.


Título: Re: Volver a programar
Publicado por: OmarHack en 4 Julio 2013, 17:02 pm
El mismo programa creado en c y en c++ usándolos a ambos de la misma manera será mucho más fácil de hacer en c++.

En C++ si no quieres crear clases pues no las creas, las clases simplemente está para ahorrarte un poco de trabajo y que el código sea más legible.

Al fin y al cabo si voy a usar 20 cadenas no necesito conocer para nada las clases, ahora, que si quiero optmizar el código, tenerlo ordenado, etc pues lo haré con clases. Es como si ahora tuvieras en c la librería "clasesdeCpp.h" si te apetece usarla la usas y si no, no. Conocer el lenguaje en profundidad no implica que tengas que conocer todas las librerías, sería imposible, tanto en c como en c++.

C++ básicamente viene siendo una extensión/remodelación de c. Nada te impide usar código en c en un programa en c++ y compilarlo, así que solo son ventajas.

En algo tan simple como el printf o el scanf tienes que especificar el dato de salida y entrada, es decir declarar de que tipo es la variable (en el scanf y en el printf). En c++ no.

Sin conocer profundamente ambos lenguajes, esos detalles son los que me hacen pensar que lo que quisieron hacer es mejorar C y hacerlo más sencillo a la vez sin perder control sobre el mismo, y bajo mi inexperta opinión lo consiguieron.  

 


Título: Re: Volver a programar
Publicado por: daryo en 4 Julio 2013, 17:06 pm
Hemos dicho no orientarlo a objetos, ergo no vamos a usar clases y no tenemos polimorfismo.

Yo creo que es más fácil por la librería estándar y esque cin -> scanf y cout -> printf. No tendrá tampoco que pelear con los caracteres, porque podrá usar strings. Para array dinámicos tiene la clase vector.
es lo mismo que yo dije


Título: Re: Volver a programar
Publicado por: eferion en 4 Julio 2013, 17:20 pm
Sin conocer profundamente ambos lenguajes, esos detalles son los que me hacen pensar que lo que quisieron hacer es mejorar C y hacerlo más sencillo a la vez sin perder control sobre el mismo, y bajo mi inexperta opinión lo consiguieron.  

... por eso se llama c++ ( c = c + 1 ) ;)


Título: Re: Volver a programar
Publicado por: apoeti en 5 Julio 2013, 00:47 am
Bueno, pues me estáis haciendo un lío xDDD Ahora no sé si seguir aprendiendo C o empezar con C++ :S
Aclaro que en C solo me falta aprender algunos conceptos más avanzados como los sockets y repasar los que ya sabía. Y, por supuesto, mucha práctica.


Título: Re: Volver a programar
Publicado por: amchacon en 5 Julio 2013, 01:12 am
Bueno, pues me estáis haciendo un lío xDDD Ahora no sé si seguir aprendiendo C o empezar con C++ :S
Aclaro que en C solo me falta aprender algunos conceptos más avanzados como los sockets y repasar los que ya sabía. Y, por supuesto, mucha práctica.
Eso no es el lenguaje C, sino una librería (ni siquiera es una librería estándar).


Título: Re: Volver a programar
Publicado por: rir3760 en 5 Julio 2013, 02:05 am
Aclaro que en C solo me falta aprender algunos conceptos más avanzados como los sockets y repasar los que ya sabía. Y, por supuesto, mucha práctica.
En ese caso termina de aprender el lenguaje C, por lo que indicas tardaras solo un poco. Después de eso nada impide que aprendas C++.

Un saludo


Título: Re: Volver a programar
Publicado por: OmarHack en 5 Julio 2013, 02:16 am
En ese caso termina de aprender el lenguaje C, por lo que indicas tardaras solo un poco. Después de eso nada impide que aprendas C++.

Un saludo

Son muy similares y hay miles de cursos para programadores de C que quieran aprender C++.

El conocimiento de ambos lenguajes te permitiría usar C y C++ a la vez en el mismo programa. 

Creo que todo lo que se hacer en C++ más o menos lo sé hacer en C (lo que es posible) Esto no solo te servirá para programar, si no para entender y por lo tanto aprovechar códigos en C++ para tus programas.


Título: Re: Volver a programar
Publicado por: apoeti en 6 Julio 2013, 01:43 am
Ok, gracias a todos. Pues seguiré aprendiendo C y ya me pasaré a C++ ^^