Ayuda con un par de temas de programación C

winlin

Buenas, enhorabuena por la página

Ando buscando un par de temas de programación en C que son los siguientes:

  • Punteros
  • Estructuras
  • Ficheros

Lo que busco es un resumen bien detallado, sé que hay páginas que lo explican pero no sé pregunto por aquí.

Son unos temas que me cuestan un poco y dentro de dos semanas tengo un examen,

gracias ;)

cabron

La típica que suele recomendar la gente es C con clase

No te puedo decir que tal esta por que nunca la he usado, pero como norma general, si lo que buscas es todo muy bien explicado, tu mejor opción es comprarte un libro.

También puedes preguntar aquí dudas concretas

LOc0

http://www.elrincondelc.com

Salu2 ;)

winlin

en el tema de estrucuras yo defino esto por ejemplo:

spoiler

i lo que no entiendo es porque hay que poner esto después:

spoiler
Santii

Primero defines la estructura, y posteriormente la inicializas, por decirlo de alguna manera

en la primera le das formato a la estructura, q cosas tiene etc etc

y en la segunda tu le indicas la longitud que quieras que tenga, en este caso 20

IAF

Estudiante de 1o de dai del baix camp por casualidad ? xD

Y0K3S3

Yo no se para que coño os enseñan C... yo directamente os enseñaria java o c# que os servira más y aprender las bases es lo mismo.

Se pilla un proyecto de consola y pista.

r2d2rigo

#7, por gente como tu es por la que acaban saliendo programas que ocupan 200 megas de RAM y chupan el 20% de CPU...

A ver, las bases son las bases, y si empiezas por un lenguaje de alto nivel como Java o C# te estas pasando por el forro todas las buenas practicas de programacion. Con C aprendes a tenerle respeto a la programacion, en plan no puedo ir creando punteros a mi puta bola y no liberar memoria jamas.

Khanser

Hayyyyy que tardes mas majas, mirando que mis punteros no se descarriaran del buen camino con el gran turbo debugger :D

cabron

#8:

Discrepo enormemente.

Las bases de programación, son conceptos, y como tal, se pueden aprender hasta con pseudocódigo.

Y aprender a programar en C, no te garantiza aprender a programar de forma correcta, se puede escribir código malo y chapucer con C, como con cualquier lenguaje.

P

estoy con #8. Una cosa son los conceptos (que se pueden mirar en pseudocodigo o como quieras) y otra cosa son los buenos habitos de programación. C y C++ son los lenguajes mas recomendables para empezar a programar. Si empiezas directamente en Java o C# hay muchas cosas que estan automatizadas y... no se, como que mejor para cuando sepas programar, que si no das por supuesto cosas que en realidad no controlas del todo.

Yo recomiendo C++ para aprender a programar. Claro que una vez se sabe... Java, C#, etc...

cabron

#11:

Te reto a que me pongas un ejemplo de una buena práctica de programación que solo se puede conocer si sabes C, y que me argumentes por que no puedes aprenderla si no has usado C en tu vida.

9 días después
B

#8 C también es un lenguaje de alto nivel.

X

#12 Un ejemplo, es que en Java no tienes que preocuparte de liberar ni un byte de memoria gracias a su recolector de basura... pero como todo programador, algún día te tocará programar en un lenguaje como por ejemplo C, C++, Object Pascal, etc.. que no tienen un recolector de basura y ya la tenemos liada madre con los memory leaks... xD (hay que recordar que estamos hablando de alguien que ha aprendido Java y sólo Java desde sus inicios).

Mi opinión es que como lenguaje de programación Java (en este caso) no es un buen aliado para principiantes, si bien es muy fácil programar con él y sus tropocientas mil librerías son una marabilla, tiene el handicap de que te libera de algunas cosas importantes (bajo mi punto de vista) que deben conocerse.

Object Pascal es mi apuesta para principiantes y no C, ¿por que? pues porque es una traducción casi literal del pseudo-código al inglés... o aunque no se estudie pseudo-código, leer el código en Object Pascal es como leer un texto en inglés, y es fácil de entender.

Con todo este rollo, si las bases no son buenas, aprender con C, C++, Object Pascal, etc... no te aseguran una buena base en el futuro, como comentas en el comentario #10.

Saludos.

P.D.: Debo reconocer que siempre he odiado un poquillo a Java, pero desde que he tenido que usarlo por obligación (xD) debo reconocer que no es nada malo, todo al contrario que es un buen lenguaje de programación… pero sigue sin convencerme, quizás sea "mala suerte" pero me da la sensación de lenta su ejecución.

Riu

me siento como un puto lerdo pero he olvidado todo en programacion xdd

cabron

#14:

Es que trabajar con la memoria, no es un principio básico de programación, es un problema concreto.

La programación va de resolver problemas, y por tanto, considero que solo es un principio básico aquello que es general para resolver cualquier tipo de problema.

Cada área de problema, tiene sus cosas específicas que tienes que saber. Si a alguien que no ha trabajado nunca con inteligencia artifiical, le pones a resolver problemas de ia, por muy buen programador qu sea, no va a ser productivo.

Si a alguien que no conoce los algoritmos más eficientes de geometría, le pones a hacer un motor 3d, probablemente lo hará mal, aunque sea la leche programando.

Pues esto es lo mismo, trabajar con memoria, es un área específica de un problema, no es un principio básico de programación. Es que si nos ponemos así, con C no puedes aprender a programar bien, por que no te deja acceder directamente a los registros de la CPU...

Para mi principio básico de programación es entender estos conceptos, y saber como usarlos correctamente:

-Programación estrucutrada:

Contadores, acumuladores, interruptores, estructura secuencial, estructura repetitiva, estrucutra condicional.

-Programación procedural:

Rutinas y funciones

-Programación orientada a objetos:

Herencia, polimorfismo, abstracción, interfaces.

Todo lo que se salga de ahí, no es un principio básico, es resolver un problema específico.

Trabajar con listas, pilas, árboles, colas, es resolver problemas específicos, hacer búsquedas y ordenaciones, es resolver problemas específicos, y trabajar con la memoria, es resolver un problema especifico.

Se podría argumentar que resolver problemas con árboles, listas, busquedas, ordenación, etc, es algo tan común, que sin importar en que estes trabajando, casi seguro que vas a tener que usarlo, así que también es importante que cualquier programador sepa estas cosas, pero aun así, seguirían sin ser principios básicos de programación, serían en todo caso "problemas básicos de programación".

Repito, no hay ni un solo concepto básico que solo puedas aprender si sabes C, y es falso que solo vas a ser un buen programador si has programado en C, y ojo , que no es por que tenga nada en contra de C, de hecho fue el primer lenguaje que aprendí... simplemente no estoy de acuerdo con esa afirmación por los motivos que ya he explicado.

MaKi

Posiblemente sean problemas especificos pero al ser problemas que aparecen en un 99% de los proyectos pasan a ser básicos (manejo de listas, etc...).

Y0K3S3

#17

Manejar listas salen los proyectos¿? Yo trabajo como programador hace años y chico...todavia estoy esperando a ver una PILA.El 90% del curro que hay hoy en dia es en java y .NET... Que consigues haciendo pelear a la gente con FIFO LIFO etc...En el mundo real NADA.

Yo aprendi a picar con el TURBO C++ de Borland.Primero en C y despues en C++ ... Y menos el tema del manejo de la memoria dinamica el resto...se puede aprender picando en C# por ejemplo que ya ubicaria a la gente en un entorno real laboral...

Por que como he dicho el 90% del curro es java y .NET

He estado en Consultora grande y despues en mediana y ahora me he tomado un tiempo en cliente final para desintoxicarme...Y os dire que mas vale que se dejen de C y demas pq despues te encuentras con cada LINCENCIADO en Ing... que es un PAKETE picando cosas REALES y que le tienes que enseñar a picar de nuevo.

Y yo encuentro triste que un Ingeniero recien graduado tenga el nivel de programación tan bajo, que si que sabe hacer virguerias en C , pero despues desconoce herencias , interficies , servicios etc...que es lo que se usa...

Usuarios habituales