Como hacer que una variable modifique el valor de otra

hola tengo que entregar un examen de Arduino y no tengo idea que hacer... la preg. es que teniendo una variable A con valores de 0 a 100 la variable B tenga valores de 700 a 800. de tal manera que si A=0 B=0 SI A=50 B=750 Y SI A=100 B=800 ... si me pueden ayudar con eso estaría eternamente agradecida.

¿Si A = 0, B = 0 ó B = 700?

Si es lo segundo es demasiado sencillo

B = A + 700;

Otra posibilidad usando la función map()

B = map(A, 0, 100, 700, 800);

Saludos

Agrego: Si acaso fuese el primer caso, aunque no se condice con

teniendo una variable A con valores de 0 a 100 la variable B tenga valores de 700 a 800.

Podría hacerse combinando ambas

if(A < 50){
  B = map(A, 0, 50, 0, 750);
}
else {
  B = A + 700;
}

holaa... la verdad es que termine el cole hace años y me mandaron este examen pero pregunte a mi profesor a cargo del examen y me dice q no me puede decir las respuestas, aunque no queria eso, sino que me explique bien como llegar a ese resulltado... me dio 6 puntos bastante faciles el primero por ej, era enumerar los valores que toma la variable (a) en este codigo...

int a=0;

voidloop
a=a+1
if(a==10) a=0... ese lo hice porque es bastante facil. y despues me mando 2 mas

el primero decia asi tal cual mande, dada la variable a que puede adquirir valores entre 0 y 100 hacer que la variable b tome los valores entre 700 y 800. de tal manera que si A=0 B = 700... y bueno todo lo demas que ya escribi... yo no entendi si el profesor quiere que en el mismo codigo visualice a y b o si tengo q hacer un codigo para que a valga 0,50y100.... y b valga700,750y800...

el segundo es parecido
a=0, b=0, a=50 ,b=150. a=100, b=300..
si lo hago tal cual me mandaste seguro que este bien, pero me gustaria poder explicar como es que lo hice sola (aunque no lo hice sola)

Hola @n-paula

No entiendo si se debe calcular solo para los valores de A (0, 50 y 100) o si es un rango que comienza con A = 0 y termina con A = 100.

Para el 1er. opción sugiero usar "switch... case" como se muestra a continuación:

RV mineirin

  switch (A)
  {
    case 0:
      B = 0;
      break;
    case 50:
      B = 750;
      break;
    case 100:
      B = 800;
      break;
    default:
      break;
  }

buenas, yo tampoco se si es a de 0a100 o si es a0,50,100... igual yo pruebo todo lo que me mandan ...

Revisá bien lo que has escrito porque en el texto dices lo que te remarque antes pero cuando pones las igualdades no coinciden en tu primer post pero si en el siguiente, A = 0 , B = 700 dices la 2da. vez, y creo que es lo correcto.

La explicación es sencilla:

Si para A = 0, B = 700 y para A = 100, B = 800 entonces

El valor de B es el valor de A más 700.

Es así de simple.

Querés una respuesta más elaborada?

Tenés 3 pares de valores
A = 0; 50; 100
B = 700; 750; 800

Entonces
B = A + X, luego
X = B - A

O sea
X = 700 - 0 = 700
X = 750 - 50 = 700
X = 800 - 100 = 700

Por lo tanto X es constante y vale 700, entonces
B = A + X es igual a
B = A + 700

Saludos

@ruilviana ¿y con el resto de los valores de A qué hacemos?
Los valores dados son a modo de ejemplo y para dar a entender que es una ecuación lineal (de hecho es la ecuación de una recta con pendiente 1 y ordenada al origen igual a 700)
O sea

y = x + 700

La solución es tan simple como

B = A + 700;

Saludos

una consulta. cuando yo hago b= a + 700... si me estaria dando el primer punto a=0/b=700...
seria lo mismo para las otras 2?

otro ejemplo que vi era con if

if (a==0) b=700;
if (a==50) b=750;

if (a==100) b=800;

Si te olvidaste como sumar puedes usar una calculadora y verificarlo. :wink:

Si, perfecto, pero tanto los con los if() como con switch() no se cumple con la consigna.

La solución tiene que ser para todos los valores posibles de A entre 0 y 100, y como ejemplo te dieron esos 3.

Saludos

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.