|
391
|
Programación / Programación C/C++ / Re: ayuda
|
en: 3 Marzo 2014, 11:32 am
|
Podías haberle puesto alguna macro de por medio... jejejeje
¡¡¡Lo tendré en cuenta para la próxima!!!. ¡¡¡¡ Saluditos! ..... !!!!
|
|
|
392
|
Programación / Programación C/C++ / Re: Ayuda con contadores
|
en: 3 Marzo 2014, 11:28 am
|
Hola, hace poco inicie a programar con contadores y me dejaron este problema al momento de compilar no me marca el incremento que quería LA EMPRESA TELMEX A DECIDIDO INCREMENTAR LA TARIFA DE LA RENTA MENSUAL POR USO DEL TELEFONO EN 4% MENSUAL. LA TARIFA DE ABRIL DE 2019 ES DE $27.00. ELABORAR UN ALGORITMO QUE IMPRIMA EL MONTO DE LA RENTA MENSUAL PARA OCTUBRE DEL 2021.
Codigo¿Cómo debo especificar el contador? Gracias
Creo que las variables que pides están prefijadas: 18 meses y $27, con lo que no tiene mucho sentido pedir al usuario que las introduzcas. Pero tal como lo tienes te las mantengo.
En lo que hay que fijarse es que el aumento es de un 4% mensual, o sea cada mes.
En principio no te hace falta un array para ver el precio final: Programa que muestra cuanto cuesta la renta en octubre del 2021
Cuantos meses voy a calcular? 18
Dame el costo de la renta: 27
El precio en octubre es: $54.697 Presione una tecla para continuar . . .
#include <cstdlib> #include <iostream> #include <cstdio> using namespace std; int main() { int i,n; float precio; system("cls"),system("color 6"); printf("\n\tPrograma que muestra cuanto cuesta la renta en octubre del 2021 \n\t"); printf("\n\tCuantos meses voy a calcular?\n\t"); scanf("%i",&n); printf("\n\t Dame el costo de la renta: "); scanf("%f",&precio); for(i=1;i<=n;i=i+1) precio*=1.04; printf("\n\t\a\aEl precio en octubre es: $%g",precio); printf("\n\t"); system("PAUSE"); return EXIT_SUCCESS; }
Otra cosa es que quisieras una tabla con los valores mensuales, tipo: Programa que muestra cuanto cuesta la renta en octubre del 2021
Cuantos meses voy a calcular? 18
Dame el costo de la renta: 27
El precio en octubre de 2021 es: $ 54.697
Siendo la variacion de la renta por mes 1: 28.08 2: 29.2032 3: 30.3713 4: 31.5862 5: 32.8496 6: 34.1636 7: 35.5302 8: 36.9514 9: 38.4294 10: 39.9666 11: 41.5653 12: 43.2279 13: 44.957 14: 46.7553 15: 48.6255 16: 50.5705 17: 52.5933 18: 54.697 resione una tecla para continuar . . .
#include <cstdlib> #include <iostream> #include <cstdio> using namespace std; int main() { int i,n; float precio[100]; system("cls"),system("color 6"); printf("\n\tPrograma que muestra cuanto cuesta la renta en octubre del 2021 \n\t"); printf("\n\tCuantos meses voy a calcular?\n\t"); scanf("%d",&n); printf("\n\t Dame el costo de la renta: "); scanf("%f",&precio[0]); for(i=1;i<=n;i=i+1) precio[i]=1.04*precio[i-1]; printf("\n\t\a\aEl precio en octubre de 2021 es: $%7g\n\t",precio[i-1]); printf("\n\t"); printf("\n\t Siendo la variacion de la renta por mes \n"); for(i=1;i<=n;i=i+1) printf("\t\t%d: %g \n",i,precio[i]); system("PAUSE"); return EXIT_SUCCESS; }
Un detalle final, ya que estas programando en C++ usa sus funciones propias, como cout para imprimir y cin para la toma de valores . No tiene mucho sentido que metas los printf , el scanf y la librería <cstdio>, mejor que <stdio.h>, que son cosas más propia del C.¡¡¡¡ Saluditos! ..... !!!!
|
|
|
393
|
Programación / Programación C/C++ / Re: ayuda
|
en: 3 Marzo 2014, 10:54 am
|
leosansan... la intención del foro es aprender, no hacer el trabajo...
por otro lado... wtf con la ecuación? XD de donde rayos sacaste? por otros lado me suena a que es dependiente del valor final, ya que tienes 3 variables independientes y una sola ecuación
a demás evaluándola todos los valores manejados me dan 7869 en la primera parte del if y >=1 para todo entre 0 y 34 en la segunda parte... podrías explicar la lógica de tu respuesta en este código sin tener el valor final?
Es un sistema de ecuaciones indeterminado ya que hay tres variables y sólo dos ecuaciones. Ello da lugar a que puedan existir infinitas soluciones, al menos en el campo real. Otra cosa es si la solución que se busca es entera.
Y no tienen mayor misterio que plantear las ecuaciones:
* 75*x+99*y+40*z=7869
* x+y+z=100
Despejando una de las variables de la segunda, yo elegí la x, y sustituyendo en la primera, para a continuación volver a despejar una de las variables en la ecuación resultante de la primera sustitución, yo tomé la y, y tomar como parámetro o variable, la "i" del for, a la variable restante z. Simple pero efectivo, salvo pifia por mi parte.
Como comentó eferion quería que el código quedará "ofuscado" para que no se diga que había resuelto el ejercicio. ¡¡¡¡ Saluditos! ..... !!!!
|
|
|
394
|
Programación / Programación C/C++ / Re: ayuda
|
en: 3 Marzo 2014, 09:46 am
|
hola rafa011, primero resuélvelo en lápiz y papel; llegarás a un algoritmo que resuelve tu problema como te indica engelx, luego lo codificas a c++. saludos.
Yo le dejo el papel y el lápiz para que haga los números ya que see trata de una par de ecuaciones simples, pero acabará en algo como esto: hombres=33 mujeres=46 niños=21
Process returned 0 (0x0) execution t
[/quote] #include <stdio.h> int main() { int i=0; for(i=0;i<98;i++) if ((100-(369+35*i)/24-i)*75+99*(369+35*i)/24+40*i==7869 && (100-(369+35*i)/24-i>=1) ) printf ("\nhombres=%d mujeres=%d ni\xA4os=%d\n",100-(369+35*i)/24-i,(369+35*i)/24,i); return 0; }
¡¡¡¡ Saluditos! ..... !!!!
|
|
|
395
|
Programación / Programación C/C++ / Re: Ayuda en modificar este código en c
|
en: 3 Marzo 2014, 08:40 am
|
Mantengo lo dicho por Gh057 en su totalidad.
Pero claro, ¿a lo mejor es que te sientes inseguro de usar las ¡instrucciones printf y scanf ?.
Por si este fuera tu caso te propongo una solución al primer ejercicio, los demás te tocan a ti.
Sólo destacar un detalle, main, que es lo que en C se llama una función, es por cuestiones del estándar de C una función de tipo int (entero) y requiere que se termine retornando un entero (return 0, por ejemplo):#include <conio.h> #include <stdio.h> #define MAX 10 int main() { int vector[MAX]={0}; int i=0; float suma=0.0,media; while(i<MAX){ printf ("\nIntroduzca la componente %d: ",i+1); scanf ("%d",&vector[i]); suma+=vector[i++]; } media=suma/MAX; printf("\nLa media es %g\n",media); getch(); return 0; }
Y para cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.
Y ahorita a estudiar un poco los printf y scanf. Cuando tengas algo de código de tu propia cosecha lo cuelgas, planteas tus dudas y seguro que habrá quien te ayude. ¡¡¡Ánimo!!!.¡¡¡¡ Saluditos! ..... !!!!
|
|
|
396
|
Programación / Programación C/C++ / Re: Problema contador en C
|
en: 3 Marzo 2014, 08:06 am
|
Leosansan, no sabes como te lo agradezco, sin ti aún estaría estancado en el principio .......................................................................... Por último, ya sólo tengo un fallo más, y con eso ya habré terminado el programa y no os daré más por saco... A la hora de comprobar si la nueva tabla es legal (que siempre caerá la pelota), tengo que mirar si nunca se cumple esto: entonces para solucionar esto pongo en el switch: .................................................................. Pero actua como si nada, como si estuviera correcto Error o tengo inicializado en el principio como 0 Supongo que partimos de que la matriz inicial es válida y que el problema surge al cambiar un valor de la matriz y aparecer la "trampa" que puede encerrar a la pelota , ¿O.K?.
En tal caso habrá que validar el cambio hecho, en el sentido que si ha provocado una "trampa" debe devolver el valor que había, vamos deshacer el cambio introducido.
Eso lo consigues así:case 2: /************************************/ for(i=0;i<49;i++) for(j=0;j<48;j++) if (matriu[i][j]==1 && matriu[i+1][j+1]==1 && matriu[i][j+2]==1) puts("ERROR NO SE HA HECHO NINGUN CAMBIO"); matriu[columna][fila] = 0; /************************************/ for(i=0;i<50;i++) { printf("\t\t"); for(j=0;j<50;j++) { if(matriu[i][j]==1) printf("X"); else if(matriu[i][j]==0 ) printf("."); } printf("\n"); } break; default:
Introduce 0 y 3 para que veas lo que sucede.
Lo que te planteo es una opción. A mí me gustaría más hacer la validación en el case 1, pero respeto tu opción, es igualmente válida.¡¡¡¡ Saluditos! ..... !!!!
|
|
|
398
|
Programación / Programación C/C++ / Re: Problema contador en C
|
en: 2 Marzo 2014, 22:36 pm
|
Era por una mala "colocación" de las instrucciones:´´´´´´´´´´´´´´´´´´´´´ }while(columna>=51 && fila>=51); i=columna,j=fila; if (matriu[i][j] == 0) matriu[i][j] = 1; break; case 2: while(i<49){ if (matriu[i+1][j]==1 && matriu[i-1][j]==1 && matriu[i][j-1]==1) printf("ERROR"); error=1; break; } for(i=0;i<50;i++) { printf("\t\t"); for(j=0;j<50;j++) { if(matriu[i][j]==1) printf("X"); else if(matriu[i][j]==0 ) printf("."); } printf("\n"); } break; default: printf("El numero introducido es incorrecto.\n"); ..........
Mira lo que sale ahora:Si hay algún otro problema insiste ¡¡¡¡ Saluditos! ..... !!!!
|
|
|
399
|
Programación / Programación C/C++ / Re: Problema contador en C
|
en: 2 Marzo 2014, 21:06 pm
|
Aquí está la solución, era como te comenté un problema de comparar en el if, con dos iguales y de asignar después con un solo igual y sobra el "else" que sigue: ........................................ i=columna,j=fila; if (matriu[i][j] == 0) matriu[i][j] = 1; ..........................................
¡¡¡¡ Saluditos! ..... !!!!
|
|
|
400
|
Programación / Programación C/C++ / Re: Problema contador en C
|
en: 2 Marzo 2014, 20:25 pm
|
............................................................. Tengo esto:............................................................................ Pero al compilar me sigue dando la tabla igual, no me cambia los valores, por tanto creo que el fallo está aquí: i=columna,j=fila; if (matriu[i][j] = 0) matriu[i][j] = 1; else matriu[i][j] = 0;
Como lo puedo solucionar??? Están mal comparados en los if, ya que asignas con un solo =, en lugar de comparar al usar dos ==: if (matriu[i ][j] == 0) matriu[i ][j] = 1; else matriu[i ][j] ==0; <==esta línea sobra, ya era cero
De todas formas, cuelga el código que llevas hecho, matriz incluida, si no es difícil ver los errores.¡¡¡¡ Saluditos! ..... !!!!
|
|
|
|
|
|
|