
[Curso] Introducción a la programación en C (VII)
Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06
Re: [Curso] Introducción a la programación en C (VII)
100% de acuerdo con el getch(); 

- 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 (VII)
m0skit0 escribió:largeroliker escribió:decena= (numero/10)+1;
¿Para qué sumar 1? Es superfluo(r).
int decena = (numero/10)+1
Luego para el caso que comentaste del 52, 52/10 = 5.2, que al estar obligado a ser entero se redondea a cinco, más uno seis. Está en la sexta decena.
m0skit0 escribió:arisma escribió:Del segundo, no usaria system("cls") es dependiente del sistema.
100% de acuerdo.
Esto sí que era superfluo, uso system("cls") para mostrar ese mensaje a modo de pequeño easter egg

m0skit0 escribió:arisma escribió:El 4º caso a mí no me funciona, me da como segundo número siempre 0, y el resultado ni por asomo se acercar.
La división no funciona, cierto. Vicejefe, comprueba tus programas antes de postearlos![]()
Además:Código: Seleccionar todo
// Calculamos los resultados
suma= num1+num2; resta= num1-num2; prod= num1*num2; division= num1/num2;
¿Por qué calculas todo si sólo vas a mostrar uno? ¿Y por qué todo en la misma línea?
Y déjate de getches ya
Sabes que siempre procuro probar todo lo que publico

Edito: Seguro que hay un bug? A mí me funciona.

Tened en cuenta que hasta que no cambie la cosa en la carrera, yo programo en Windows para Windows. Por más que me pese xD
A lo segundo:
Manías del VB. No estoy acostumbrado a que el programa haga una sola operación y se cierre, así que lo dejo preparado para que haga cuantas quiera. Aún así me lo apunto.
Y a lo del getch(), os digo lo mismo que antes. Programo para Windows, y si no pongo el getch() se cierra el programa antes de leer la respuesta. Podría poner un retardo, pero pienso que es mejor dejarlo tal y como está.
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 (VII)
Sigo sin estar de acuerdo respecto al cls y al getch, siguen siendo dependientes.
Compila desde tu IDE, pero abre una linea de comandos y ejecutas desde ahí, así verás el contenido y no se cerrará.
Ahora respecto a la división, no funciona. Y ya no sólo porque los que compilamos en linux no funcione, ok se achacamos si quieres a nuestro compilador y etc, pero....
Siguiendo tu ejemplo, hazlo con lo siguientes datos->
625
25
Opción 4.
Resultado???? ->MAL, no es ese
El motivo
Luego lo has corregido.
Por lo demás, el otro ejercicio hazlo sin sumarle 1 en el de las decenas.
Compila desde tu IDE, pero abre una linea de comandos y ejecutas desde ahí, así verás el contenido y no se cerrará.
Ahora respecto a la división, no funciona. Y ya no sólo porque los que compilamos en linux no funcione, ok se achacamos si quieres a nuestro compilador y etc, pero....
Siguiendo tu ejemplo, hazlo con lo siguientes datos->
625
25
Opción 4.
Resultado???? ->MAL, no es ese

El motivo
Código: Seleccionar todo
printf("La division de %d y %.2f resulta %d", num1, num2, division);
Luego lo has corregido.
Por lo demás, el otro ejercicio hazlo sin sumarle 1 en el de las decenas.
- 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 (VII)
arisma escribió:Sigo sin estar de acuerdo respecto al cls y al getch, siguen siendo dependientes.
Compila desde tu IDE, pero abre una linea de comandos y ejecutas desde ahí, así verás el contenido y no se cerrará.
Yap, pero para una comprobación es más lioso. Y lo mismo si lo ejecuto con doble click, depender de la consola me parece demasiado lioso...
arisma escribió:Ahora respecto a la división, no funciona. Y ya no sólo porque los que compilamos en linux no funcione, ok se achacamos si quieres a nuestro compilador y etc, pero....
Siguiendo tu ejemplo, hazlo con lo siguientes datos->
625
25
Opción 4.
Resultado???? ->MAL, no es ese
Puees...


Yo qué quieres que te diga. 625/25= 25...
EDIT: Se me movió el float de sitio, era %d,%d y %.2f pero se escurrió

arisma escribió:Por lo demás, el otro ejercicio hazlo sin sumarle 1 en el de las decenas.
Sin sumarle uno? Nontiendo...entonces dirá que 3 está en la decena 0 y que 52 en la 5, lo queréis así?
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 (VII)
largeroliker escribió:Yo qué quieres que te diga. 625/25= 25...
Prueba con 3 y 4, ya me cuentas.
largeroliker escribió:Sin sumarle uno? Nontiendo...entonces dirá que 3 está en la decena 0 y que 52 en la 5, lo queréis así?
Pero tú escribes "está en la primera decena". Es cuestión de cambiar el valor de los cases, nada más. Es superfluo sumarle 1, es una operación sin mucho sentido la verdad. Y así te vas acostumbrando a que las cuentas empiecen en 0, que te viene bien para más tarde

En cuanto al tema del gecth() y system(), hazlo como quieras. Dejemos ya el tema.

- 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 (VII)
m0skit0 escribió:largeroliker escribió:Sin sumarle uno? Nontiendo...entonces dirá que 3 está en la decena 0 y que 52 en la 5, lo queréis así?
Pero tú escribes "está en la primera decena". Es cuestión de cambiar el valor de los cases, nada más. Es superfluo sumarle 1, es una operación sin mucho sentido la verdad. Y así te vas acostumbrando a que las cuentas empiecen en 0, que te viene bien para más tarde![]()
Ostia, ya lo veo

m0skit0 escribió:largeroliker escribió:Yo qué quieres que te diga. 625/25= 25...
Prueba con 3 y 4, ya me cuentas.
Vale, ahí he visto un error.
Corregido dos:
Spoiler:
El primero, corregido:
Spoiler:
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 (VII)
Ok, ya lo tienes, aunque recuerda modificar los comentarios xDD
Pues añade ese rango. Y de paso haz algo para que detecte, antes de toda la pesca, si el número introducido entra en el rango pedido
largeroliker escribió:no caigo en algún algoritmo que permita definir todo el rango sin añadir también 101-109
Pues añade ese rango. Y de paso haz algo para que detecte, antes de toda la pesca, si el número introducido entra en el rango pedido


- 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 (VII)
Hecho.
Intenté poner if ( 100> numero < 0) pero no me dejaba...
Saludos!
Código: Seleccionar todo
#include <stdio.h>
int main(int argc, char* argv[])
{
int numero, decena;
//Capturamos el número
printf("Introduzca un numero del 0 al 100\n");
scanf("%d", &numero);
//Primero comprobamos que el número esté en el rango deseado. Si se da el caso, continúa.
if (numero < 0)
printf("No esta entre 1 y 100\n");
else if (numero > 100)
printf("No esta entre 1 y 100\n");
else
{
//Hallamos la decena para el switch. Para ello, dividimos el número por diez.
decena= numero/10;
switch (decena)
{
case 0:
printf("Esta en la primera decena\n");
break;
case 1:
printf("Esta en la segunda decena\n");
break;
case 2:
printf("Esta en la tercera decena\n");
break;
case 3:
printf("Esta en la cuarta decena\n");
break;
case 4:
printf("Esta en la quinta decena\n");
break;
case 5:
printf("Esta en la sexta decena\n");
break;
case 6:
printf("Esta en la septima decena\n");
break;
case 7:
printf("Esta en la octava decena\n");
break;
case 8:
printf("Esta en la novena decena\n");
break;
case 9:
printf("Esta en la decima decena\n");
break;
default:
printf("Esta en la undecima decena\n");
break;
}
}
getch();
return 0;
}
Intenté poner if ( 100> numero < 0) pero no me dejaba...
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 (VII)
Bueno no importa, ya verás cómo hacerlo en la siguiente lección 


Re: [Curso] Introducción a la programación en C (VII)
Hola
otra complicacion
Me dan estos errores:
Edito:
Me faltaba un ; en

otra complicacion

Spoiler:
Me dan estos errores:
Spoiler:
Edito:
Me faltaba un ; en
Código: Seleccionar todo
num = numero/10
