
[Curso] Introducción a la programación en C (V)
Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06
- largeroliker
- Administrador
- Mensajes: 8286
- Registrado: 03 Sep 2009, 09:46
- PSN ID: larger0o
- Gamertag Xbox Live: larger0o
- Steam ID: larger0o
- Twitter: larger0o
- Ubicación: Málaga
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Me ha costado varios días, pero al fin anda 
Saludos!

Código: Seleccionar todo
// Incluímos el fichero stdio.h y unistd.h
#include <stdio.h>
#include <windows.h>
// Función principal
int main(int argc, char *argv[])
{
//Declaramos las dos edades y las pedimos
float edad1, edad2;
printf("Introduzca la primera edad: "); scanf(" %f", &edad1);
printf("Introduzca la segunda edad: "); scanf(" %f", &edad2);
// Calculamos la suma, el producto y la media.
float suma = edad1+edad2, product = edad1*edad2, media = suma/2;
// Y lo mostramos sin tapujos XD
printf("La suma de ambas edades es de %.0f anios\n", suma);
printf("El producto de ambas edades es de %.0f anios\n", product);
printf("La media de ambas edades es de %.1f anios\n", media);
getch();
return 0;
}
Saludos!


Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2
Re: [Curso] Introducción a la programación en C (V)
Ese vicejefe eh eh eh!
Es mala práctica declarar variables en medio del meollo. Primero las declaraciones, luego el código.

Código: Seleccionar todo
float suma = edad1+edad2, product = edad1*edad2, media = suma/2;
Es mala práctica declarar variables en medio del meollo. Primero las declaraciones, luego el código.

- largeroliker
- Administrador
- Mensajes: 8286
- Registrado: 03 Sep 2009, 09:46
- PSN ID: larger0o
- Gamertag Xbox Live: larger0o
- Steam ID: larger0o
- Twitter: larger0o
- Ubicación: Málaga
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Yap, lo que no sé es si declaro suma antes de tener edad1 y edad2 con valores va a funcionar 
EDIT: No funciona, como pensaba. Al final he optado por "simplificar" y meter los cálculos sin variable dedicada, al final del printf.
Saludos!

EDIT: No funciona, como pensaba. Al final he optado por "simplificar" y meter los cálculos sin variable dedicada, al final del printf.
Saludos!


Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2
Re: [Curso] Introducción a la programación en C (V)
También, pero así haces la suma 2 veces. Para hacerlo como yo digo, lógicamente primero declaras y luego asignas:
Evidentemente como has comprobado no sirve de nada ahcer los cálculos antes de asignarle a las variables sus valores correspondientes, ya que te saldría cualquier churro
Código: Seleccionar todo
float suma, product, media;
[...]
suma = edad1+edad2;
product = edad1*edad2;
media = suma/2;
Evidentemente como has comprobado no sirve de nada ahcer los cálculos antes de asignarle a las variables sus valores correspondientes, ya que te saldría cualquier churro


- largeroliker
- Administrador
- Mensajes: 8286
- Registrado: 03 Sep 2009, 09:46
- PSN ID: larger0o
- Gamertag Xbox Live: larger0o
- Steam ID: larger0o
- Twitter: larger0o
- Ubicación: Málaga
- Contactar:
Re: [Curso] Introducción a la programación en C (V)
Oka. Lo de declarar a mitad lo hice porque no sabía cómo llamar a una variable para darle un valor en mitad del código.
Saludos!
Saludos!


Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2
- hiddenotebook
- Experto
- Mensajes: 634
- Registrado: 28 Dic 2009, 14:56
- Ubicación: En un lugar de la mancha...
Re: [Curso] Introducción a la programación en C (V)
Jo profe ya se que odias wind pero al principio decías que pondrías los dos OS
a mi me gusta LINUX pero estoy muy verde
y con linux me lio un poco es mas fácil con el compilador dev-c ++, de todas formas voy a seguir pero..
¿puedes hacer programas en Linux que después se ejecuten en Win?
supongo que si, si coges el texto y lo compilas en dev-c pero cambiando algunas cosas no? como lo de system("read foo"); no tengo muy claro el cambio…


a mi me gusta LINUX pero estoy muy verde

¿puedes hacer programas en Linux que después se ejecuten en Win?
supongo que si, si coges el texto y lo compilas en dev-c pero cambiando algunas cosas no? como lo de system("read foo"); no tengo muy claro el cambio…


Re: [Curso] Introducción a la programación en C (V)
hiddenotebook escribió:Jo profe ya se que odias wind pero al principio decías que pondrías los dos OS![]()
Por ahora todos los programas corren perfectamente en ambos SOs, ya que son muy simples, y los cambios mínimos.
hiddenotebook escribió:con linux me lio un poco es mas fácil con el compilador dev-c ++
Sí, pero lo fácil no enseña nada

hiddenotebook escribió:¿puedes hacer programas en Linux que después se ejecuten en Win?
Sí, eso se llama cross-compiling (compilación cruzada), es decir, compilar un programa en una plataforma para que funcione en otra. Es precisamente lo que hace el PSPSDK, ya que compilas en PC pero el programa realmente se ejecuta en PSP. Es un poco complicado, sobre todo si no sabes cómo funciona realmente un compilador, así que por ahora pasando.

- hiddenotebook
- Experto
- Mensajes: 634
- Registrado: 28 Dic 2009, 14:56
- Ubicación: En un lugar de la mancha...
Re: [Curso] Introducción a la programación en C (V)
Lo demás debería de ser de sobra entendible con los comentarios y lo que ya hemos visto. Ahora la pregunta es: ¿cuál de las tres medias es la correcta?
Yo creo que es el valor 2 (media2) mirando el resultado
Lo que no entiendo muy bien es que si realmente la media es edad_alber + edad_pili / 2 porque tiene que estar entre paréntesis? para que el calculo sea correcto.
Yo creo que es el valor 2 (media2) mirando el resultado
Spoiler:
Lo que no entiendo muy bien es que si realmente la media es edad_alber + edad_pili / 2 porque tiene que estar entre paréntesis? para que el calculo sea correcto.

Re: [Curso] Introducción a la programación en C (V)
Es evidente que media2 es la correcta, y tambien que media1 y media3 son iguales.
Eso ya es de matemáticas de primaria
Hay que estar más atento en clase de mates si te interesa la informática, ya que la mayor parte de ésta se basa en aquella
.
Te refresco la memoria: en matemáticas (igual que en programación) existe lo que se llama precedencia de operadores. Es decir, que si tenemos una expresión con varios operadores aritméticos, hay algunos que tienen precedencia sobre otros, es decir, se calculan antes. La multiplicación/división siempre se calcula antes que la suma/resta. Por ejemplo: 2 + 3 * 6 = 20, ya que primero va 6*3 = 18 luego + 2 = 20. Sin embargo, esto se puede modificar si usamos paréntesis: (2 + 3) * 6 = 30, ya que la operación entre paréntesis se efectúa antes que cualquier otra cosa. Otro ejemplo más: (5 - 2 / 2) * (1 * 6 + 2) = 4 * 8 = 32.
Para más información sobre precedencia de operadores en C/C++: http://en.wikipedia.org/wiki/C_operator ... precedence
Independientemente, alabo tu actitud de preguntar todo lo que no comprendes
hiddenotebook escribió:Lo que no entiendo muy bien es que si realmente la media es edad_alber + edad_pili / 2 porque tiene que estar entre paréntesis? para que el calculo sea correcto.
Eso ya es de matemáticas de primaria


Te refresco la memoria: en matemáticas (igual que en programación) existe lo que se llama precedencia de operadores. Es decir, que si tenemos una expresión con varios operadores aritméticos, hay algunos que tienen precedencia sobre otros, es decir, se calculan antes. La multiplicación/división siempre se calcula antes que la suma/resta. Por ejemplo: 2 + 3 * 6 = 20, ya que primero va 6*3 = 18 luego + 2 = 20. Sin embargo, esto se puede modificar si usamos paréntesis: (2 + 3) * 6 = 30, ya que la operación entre paréntesis se efectúa antes que cualquier otra cosa. Otro ejemplo más: (5 - 2 / 2) * (1 * 6 + 2) = 4 * 8 = 32.
Para más información sobre precedencia de operadores en C/C++: http://en.wikipedia.org/wiki/C_operator ... precedence
Independientemente, alabo tu actitud de preguntar todo lo que no comprendes

