Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

Si eres principiante y tienes alguna consulta entra en este foro.
Responder
Mensaje
Autor
guillero
Mensajes: 3
Registrado: 01/04/2019 11:28 am

Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#1 Mensaje por guillero » 01/04/2019 5:39 pm

Hola a todos. Yo soy nuevo en C. Manejo únicamente el lenguaje de nes (assembly de 6502), y se me ocurrió leer la segunda edición del libro de Ritchie y Kernighan. Hasta el capítulo 1.6 entiendo todo, pero en el capítulo 1.7 (Funciones) Me encontré con un ejemplo en el que no entiendo nada. ¿Alguien me puede explicar, línea por línea, qué es lo que hace y cómo funciona el programa? Lo único que entiendo es que la base se multiplica por sí misma la cantidad de veces que diga el exponente.

Código: Seleccionar todo

#include <stdio.h>

int power(int m, int n);

/* prueba la función power */
main()
{
	int i;
	
	for (i = 0; i < 10; + + i)
		printf ("%d %d %d\n", i, power(2,i), power (-3,i);
	return 0;
}

/* power: eleva la base a la enésima potencia; n > = 0 */

int power(int base, int n)
{
	int i, p;
	
	p = 1
	for ( i = 1; i < = n; + + i)
		p = p * base
	return p;
}
Última edición por mollok el 02/04/2019 12:47 am, editado 1 vez en total.
Razón: Los códigos deben ir entre etiquetas 'code', botón </>

mollok
Mensajes: 413
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#2 Mensaje por mollok » 02/04/2019 12:58 am

Este programa te fallará. El operador de incremento ++ no debe tener espacios enmedio.

Explicar todo línea por línea no hace falta. Supongo que ya sabes que es un bucle, cómo se llaman a las funciones, usar variables.

¿Qué es realmente lo que no comprendes?
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

guillero
Mensajes: 3
Registrado: 01/04/2019 11:28 am

Re: Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#3 Mensaje por guillero » 02/04/2019 4:54 pm

Por ejemplo, no entiendo bien qué es el principio de una función y qué no lo es.
Cuál es el resultado de printf.
Qué pasa en return 0 y en return p.
En int power de dónde salen los valores de base y de n.
Cómo interactúan las variables de power y main, si es que lo hacen, o si son dos programas completamente independientes.

Pido disculpas, estoy más perdido que Giordano en una olimpiada de inteligencia...

mollok
Mensajes: 413
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#4 Mensaje por mollok » 02/04/2019 9:58 pm

Para entenderlo mira la siguiente función:

Código: Seleccionar todo

int suma(int a, int b) {
   return a+b;
}
Ahora en otra parte del código podrás hacer:

Código: Seleccionar todo

int resultado = suma(3, 5);
Una función sirve para ordenar código y tener en un solo sitio un conjunto de instrucciones que vas a repetir muchas veces.
Una función es independiente, lo que ocurra en ella se queda en ella.
Por eso para poder comunicarse con el exterior y recibir los datos que le faltan para realizar la operación se le pasan los argumentos entre paréntesis, cómo en una función matemática.
Una vez realizada una operación devuelve un valor que es el calculado, con el return. Igual que hacen las funciones matemáticas.

En tu respuesta printf devuelve el número de caracteres que ha escrito.

Por cierto K&R es un libro bastante completo pero muy complicado para principiantes y está tratando una versión muy antigua de C, anterior a 1989. Deberías cambiar de lectura para aprender.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

guillero
Mensajes: 3
Registrado: 01/04/2019 11:28 am

Re: Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#5 Mensaje por guillero » 03/04/2019 3:09 pm

La verdad que no entiendo nada. ¿Me recomendarías algún libro?

mollok
Mensajes: 413
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Ayuda con un ejemplo de programa del libro "El lenguaje de programación C"

#6 Mensaje por mollok » 03/04/2019 9:03 pm

No te recomendaría nada en concreto. La red está llena de tutoriales y ejemplos y vídeos.
Ve a alguna plataforma de vídeos online y podrás aprender rápidamente con sus lecturas. Ve copiando lo que hacen y realiza pequeñas variaciones para solventar las dudas que te van saliendo.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados