Programacion C

antonio92

New member
Hola foro:)

Pues creo este hilo por saber si alguien me puede echar una mano con el tema.
El lenguaje de programacion que tengo que desarrollar es el C, y bueno la verdad es que no se me da muy bien, pero lo tengo que sacar por mis santos cojones( hay que aprobar la asignatura)

la verdad es que cuando entro en cosas con mas dificultad, como son las funciones, funciones recursivas, dividir programas por partes ahi voy jodio... xD
y bueno mi objetivo es saber hacer listas enlazadas, repetitivas, pilas, colas y arboles( es lo que hace falta saber para aprobar la asignatura)

Y bueno pues abria este hilo para saber si alguien domina, o que sepa mas que yo, con eso me conformo, y que este dispuesto a echarme una manilla...
Saludos
 
Hola foro:)

Pues creo este hilo por saber si alguien me puede echar una mano con el tema.
El lenguaje de programacion que tengo que desarrollar es el C, y bueno la verdad es que no se me da muy bien, pero lo tengo que sacar por mis santos cojones( hay que aprobar la asignatura)

la verdad es que cuando entro en cosas con mas dificultad, como son las funciones, funciones recursivas, dividir programas por partes ahi voy jodio... xD
y bueno mi objetivo es saber hacer listas enlazadas, repetitivas, pilas, colas y arboles( es lo que hace falta saber para aprobar la asignatura)

Y bueno pues abria este hilo para saber si alguien domina, o que sepa mas que yo, con eso me conformo, y que este dispuesto a echarme una manilla...
Saludos


Con 18 años y ya estás dando programación? Que grado medio es? Porque en el instituto me extraña mucho que des eso.
 
Yo lo he aprobado en la universidad, con un 6 y poco pero no veas si me ha costado... Y después de un par de fiesta se me ha olvidado todo. Mi consejo, que me sirvió para aprobar, haz muchos ejercicios y ve a las tutorias del profesor@.

Saludos
 
Con 18 años y ya estás dando programación? Que grado medio es? Porque en el instituto me extraña mucho que des eso.

con 18 años puedes hacer, por poner un ejemplo:

Administrador de Sistemas informaticos
Desarrollo de aplicaciones informaticas

En Desarrollo se mira muchisimo mas la programacion, en administracion se mira mas el tema practico de mantenimiento de una red, aunque tb tocas el tema de programacion.

Por cierto:

printf("ODIO las pilas, colas, arboles... las ODIO!!!!");
 
Con 18 años y ya estás dando programación? Que grado medio es? Porque en el instituto me extraña mucho que des eso.

si... estoy en teleco.. xD
pero vamos que hay grados medios de redes y noseque en el que dan C#,
pero el que necesite es el C normal:( jajaja
 
si... estoy en teleco.. xD
pero vamos que hay grados medios de redes y noseque en el que dan C#,
pero el que necesite es el C normal:( jajaja

Ah entiendo! es verdad me había perdido con lo de la edad :D

Buena carrera entonces! Pero por aquí no te van a ayudar mucho.

Mira en foros de informática (te pasaría algunos pero está prohibido el Spam) que allí seguro que te ayudan mejor.
 
Yo lo he aprobado en la universidad, con un 6 y poco pero no veas si me ha costado... Y después de un par de fiesta se me ha olvidado todo. Mi consejo, que me sirvió para aprobar, haz muchos ejercicios y ve a las tutorias del profesor@.

Saludos

ya... el problema es que este cuatrimestre tengo de C, solo eso listas pilas colas arboles... pero lo otro que es del cuatrimestre anterior lo llevo fatal xD
 
Ah entiendo! es verdad me había perdido con lo de la edad :D

Buena carrera entonces! Pero por aquí no te van a ayudar mucho.

Mira en foros de informática (te pasaría algunos pero está prohibido el Spam) que allí seguro que te ayudan mejor.

ostias que rapido.. jajajaja
podemos hablar por privado?
y bueno son 18 años hasta dentro de na xD
 
Estudio ingenieria informatica y solo decirte que si realmente quieres acabar la carrera ponte ahora mismo en serio a aprender C porque vas a hacerlo toda la carrera.

Te paso un link de una web con un tutorial desde 0 para aprender C:
Curso de C++ - Introducción

En este sitio trabajan en linux, recomiendo hacerlo en linux ya que windows es algo más engorroso.

Cuando hagas recursividad en assembler (si es que haceis) si que te vas a cagar en todo. C en general es facil.
 
Estudio ingenieria informatica y solo decirte que si realmente quieres acabar la carrera ponte ahora mismo en serio a aprender C porque vas a hacerlo toda la carrera.

Te paso un link de una web con un tutorial desde 0 para aprender C:
Curso de C++ - Introducción

En este sitio trabajan en linux, recomiendo hacerlo en linux ya que windows es algo más engorroso.

Cuando hagas recursividad en assembler (si es que haceis) si que te vas a cagar en todo. C en general es facil.

Eso eso, tu dale ánimos jajaja que acaba de empezar la carrera hombre, ten piedad.
 
jajajajaja gracias por el tutorial, ya lo conocia, y bueno lo que es la teoria me la he leido tropecientas veces, mas bien lo que me falta es soltura en lo que es sentarte frente al ordenador hacer programillas y que salgan bien, esto ultimo sobre todo... que no den errores amargantes y demas xD

asi que bueno

#include<stdio.h>

int main()
{
printf("Gracias a todos por comentarme y demas, que voy a seguir registrandome en mas foros");

return 0;
}
 
Lo que he dado yo no estaba dificil (estoy en 1º de teleco tambien), cuestion de practicar un poco cada dia y en poco tiempo ya tienes dominado lo basico.
 
el problema era ese, que tengo que dominar lo del primer cuatrimestre al maximo, y no lo llevo asi... xD y ahora pilas colas listas y demas, cada dia me pongo un rato que me queda a hacer las practicas viejas, algunas veces me dan errores y demas y me pego mas tiempo buscando un error que haciendo el programa pero espero conseguirlo xD
salu2
 
Ale te dejo una de las recursividades más sencillas a ver si lo entiendes un poco:

Code:
int factorial(int x)
{
     if(x <= 1)
          return 1;
     else 
     {
           int r = factorial(x-1);
           r = x * r;
           return r;
     }
}

TODAS las funciones recursivas tienen un CASO BASE y un CASO RECURSIVO. El CASO BASE es un IF que no se llama nunca a si mismo. En el ejemplo anterior el caso base es cuando x es 1, el factorial de 1 es 1 y no debemos ir decreciendo ya que solo debemos llegar hasta el 1 para calcular un factorial. El CASO BASE por lo tanto retorna un 1 como resultado de factorial de 1.

El CASO RECURSIVO es cuando la funcion se llama a si misma, es el caso del ELSE. En este caso queremos calcular el factorial de x, para ello llamamos a factorial y le pedimos que nos calcule x-1. Una vez nos devuelve el calculo de x-1, lo multiplicamos por x. Asi queda que en el CASO RECURSIVO estaremos haciendo x*factorial(x-1).

Como ejemplo, imagina que tenemos que X=3, entramos dentro del caso recursivo y pedimos que nos calcule el factorial de X-1=2, volvemos a entrar a la funcion pero ahora X=2 y no 3, de nuevo entramos en caso recursivo y pedimos el factorial de X-1=1. Volvemos a entrar a la funcion pero como X=1, entramos en CASO BASE y nos retorna un 1. Recogemos el resultado 1 mientras X=2, hacemos R=2*1, y retornamos R=2. Volvemos a recoger el resultado 2, hacemos R=3*2 y retornamos R=6. En este punto ya hemos acabado la recursividad y salimos de la función con el resultado correcto de 3! = 6.

Pilas, colas y demas es muy facil, solo tienes que entender para que sirven. Una pila es como jugar al lego, vas metiendo cosas una encima de otras, y despues para sacarlas tienes que sacar primero las de arriba.

La cola es como su nombre indica como la cola del super, alli va entrando peña a pagar en la caja, pero el primero que ha llegado es el primero que sale, y asi hasta que se vacia la cola. El ultimo que añades es el ultimo que puede salir.
 
Ale te dejo una de las recursividades más sencillas a ver si lo entiendes un poco:

#include <stdio.h>

int main(void)
{
char nomenteradodenada;
if(nomenteradodenada=Verdacoño)
printf("Mierda, voy dormir");
else
printf("Voy dormir igual, que son horas);
return 0;
}

xD xD xD xD xD xD
 
#include <stdio.h>

int main(void)
{
char nomenteradodenada;
if(nomenteradodenada=Verdacoño)
printf("Mierda, voy dormir");
else
printf("Voy dormir igual, que son horas);
return 0;
}

xD xD xD xD xD xD
pero tio en ese caso verdacoño tendria que ir no con el operador de asignacion sino con el de igualdad no?(==) porque si no siempre te vas a ir a dormir xDDDDD aunqe de todos modos no queda otra xD
y lo que yo nose es si a una variable tipo char se le puede asignar una cadena de caracteres, siempre he pensado que mas de un caracter no se puede xD
Y bueno lo otro, yo por recursividad entiendo que una funcion se va llamando asi misma, hasta que una condicion para no? xD
que descanses!jajaja
 
Ale te dejo una de las recursividades más sencillas a ver si lo entiendes un poco:

Code:
int factorial(int x)
{
     if(x <= 1)
          return 1;
     else 
     {
           int r = factorial(x-1);
           r = x * r;
           return r;
     }
}

TODAS las funciones recursivas tienen un CASO BASE y un CASO RECURSIVO. El CASO BASE es un IF que no se llama nunca a si mismo. En el ejemplo anterior el caso base es cuando x es 1, el factorial de 1 es 1 y no debemos ir decreciendo ya que solo debemos llegar hasta el 1 para calcular un factorial. El CASO BASE por lo tanto retorna un 1 como resultado de factorial de 1.

El CASO RECURSIVO es cuando la funcion se llama a si misma, es el caso del ELSE. En este caso queremos calcular el factorial de x, para ello llamamos a factorial y le pedimos que nos calcule x-1. Una vez nos devuelve el calculo de x-1, lo multiplicamos por x. Asi queda que en el CASO RECURSIVO estaremos haciendo x*factorial(x-1).

Como ejemplo, imagina que tenemos que X=3, entramos dentro del caso recursivo y pedimos que nos calcule el factorial de X-1=2, volvemos a entrar a la funcion pero ahora X=2 y no 3, de nuevo entramos en caso recursivo y pedimos el factorial de X-1=1. Volvemos a entrar a la funcion pero como X=1, entramos en CASO BASE y nos retorna un 1. Recogemos el resultado 1 mientras X=2, hacemos R=2*1, y retornamos R=2. Volvemos a recoger el resultado 2, hacemos R=3*2 y retornamos R=6. En este punto ya hemos acabado la recursividad y salimos de la función con el resultado correcto de 3! = 6.

Pilas, colas y demas es muy facil, solo tienes que entender para que sirven. Una pila es como jugar al lego, vas metiendo cosas una encima de otras, y despues para sacarlas tienes que sacar primero las de arriba.

La cola es como su nombre indica como la cola del super, alli va entrando peña a pagar en la caja, pero el primero que ha llegado es el primero que sale, y asi hasta que se vacia la cola. El ultimo que añades es el ultimo que puede salir.

pero en una recursividad, cuando la funcion se llama asi misma, supongamos en el segunda caso cuando r=2 (3-1) el return no se devuelve al main, sino a la misma funcion no? me explico? xD Me refiero que el valor que devuelve la funcion se devuelve a la variable R hasta que es menor que uno ya lo devuelve a main?
salu2 y thanks:)
 
Para X=3, primero llamas 2 veces a la funcion, despues retornas un 1 a factorial(2), despues retornas un 2 a factorial(3), y para acabar retornas un 6 al main.
 
Atrás
Arriba