Cita:
Iniciado por Carlangueitor Pero me hace ruido que creas que no sirven para nada los métodos y los arrays
Una vez me preguntaron la diferencia entre función y método y no la sé, y por lo que veo aquí:
http://www.iteramos.com/pregunta/143...-y-una-funcion
método es algo de POO, que tampoco sé.
No digo que sirva para nada, menos lo diría si no sé. Le sirve a quienes les gusta usarlo, por ejemplo. Y las funciones me parecen necesarias a veces para evitar repeticiones de código. Lo que no me parece necesario es definir funciones en un lenguaje tipo BASIC si sólo se usarán en 1 parte. A los arrays si no les encuentro necesidad. Cuando hablo de necesidad dejo los gustos de lado, podríamos decir que "es necesario para que la persona se sienta cómoda", pero no, hablo de que un programa es imposible de hacer si no se usa eso, o al menos no se me ocurre cómo. Definir variables es necesario para la mayoría de las cosas. Definir condiciones también. Usar arrays quizá sí, pero no he visto un caso, y los arrays además son un conjunto de variables, so, en teoría, se podría usar un conjunto de variables en vez de un array.
Está bueno que haya opciones, que la gente use lo que quiera.
Cita: por ejemplo, me gustaría cómo resolverías esto:
- Un conversor de temperaturas celcius a farenheit y viceversa, no tiene por que aceptar entrada directamente de usario, si no del mismo programa.
- Convertir una serie de temperaturas dadas, por ejemplo: 10°C, 20°C, 24°C.
Aquí
http://www.metric-conversions.org/es...fahrenheit.htm
dice:
"La escala Celsius es un sistema de intervalos pero no un sistema de proporciones, lo que significa que sigue una escala relativa y no una escala absoluta. Esto se puede ver porque el intervalo de temperatura entre 20 °C y 30 C es el mismo que entre 30 °C y 40 °C, pero 40 °C no tiene el doble de energía de calor del aire que 20 °C"
Por lo que no sé si hay saltos en las proporciones respecto a F, pero parece que no, que:
(X)ºC = (1.8X + 32)F
y por lo tanto que:
((X-32)/1.8)ºC = (X)F
No estoy muy seguro de eso último, la página dice que:
"Una diferencia de temperatura de 1 °F es el equivalente de una diferencia de temperatura de 0,556 °C."
Pero tampoco estoy seguro de estar entendiendo bien, es como que +1 F = +0.556ºC ¿pero entonces no debería ocurrir que...
1____0.556
1,7985611510791366906474820143885___1
?
No es lo mismo que 1.8
pero está bien, es más parecido de lo que creí xD
Dime si hay algo que no haya entendido bien.
Código a:
Ver originalConverir_a = "F"
Temperatura1 = 10
Temperatura2 = 20
Temperatura3 = 24
N=0
Si Convertir_a == "F"
Do
N++
Resumen = "Temperatura"+N
set (Resumen+"convertida", eval(Resumen*1.8 + 32))
while N < 3
sino
Do
N++
Resumen = "Temperatura"+N
set (Resumen+"convertida", eval(Resumen*0.556))
while N < 3
fin del si
No muestra en pantalla las temperaturas ni tiene "lujos" de esos, pero pueden agregarse.
Si se quiere convertir a F se escribe "F" en la 1era variable. Si se quiere C entonces hay que escribir cualquier cosa, menos "F".
Si se quiere evaluar temperaturas con otros valores se puede modificar el valor de las existentes o crear más. En el 2ndo caso, hay que modificar el 3 que aparece en la condición de los dow.
Puse un "sino" en vez de un "sino si" porque no me pareció necesario lo 2ndo, pero puede ponerse.
Se podría borrar desde donde dice sino, y configurar manualmente que la conversión sea en una cosa u otra. Las fórmulas podrían estar en un comentario para más facilidad. Sería así:
Código a:
Ver originalTemperatura1 = 10
Temperatura2 = 20
Temperatura3 = 24
N=0
Do
N++
Resumen = "Temperatura"+N
// a F: eval(Resumen*1.8 + 32)
// a C: eval(Resumen*0.556)
set (Resumen+"convertida", *****))
while N < 3
Pegar la fórmula deseada (están en comentarios) en donde dice *****.
Normalmente lo correcto sería que se determinara según qué se escribe: F o C, por ejemplo. Pero yo tengo la manía de querer ahorrar electricidad o algo por el estilo xP Si fuesen más opciones la computadora tendría que chequear cada una... Bueno... salvo que cada una sea una función. En este caso sería necesaria para un mejor rendimiento.
Dicen que eval is evil, pero para mí es clave para no tener que usar arreglos.
Si lo que está en sus paréntesis es un string, lo lee como si fuese una variable, y en caso de existir da su valor. De este modo es posible variar a qué variable se nombra. Normalmente se nombra a una en cada parte del código, pero en un dow por ejemplo suele requerirse nombrar una distinta en cada distinta repetición. ¿Cómo nombrar diferentes variables sin un código inmenso, arrays, ni eval?