Convertir una temperatura dada a otro sistema basado en puntos de ebullición y congelación dados

Hay dos termómetros y dados cinco números enteros F1 , B1 , F2 , B2 y T , donde F1 y B1 son los puntos de congelación y el punto de ebullición del agua en el termómetro 1 , y F2 y B2 son los puntos de congelación y el punto de ebullición del agua en el termómetro 1 . termómetro 2 respectivamente, y T es alguna temperatura registrada en el termómetro 1 . La tarea es encontrar la temperatura en el termómetro 2 .

Ejemplo: 

Entrada: F1 = 0, B1 = 10, F2 = 100, B2 = 200, T = 4 
Salida: 140,00

Entrada: F1 = 0, B1 = 100, F2 = 32, B2 = 212, T = 37 
Salida: 98,60 

Enfoque: Considere que el primer termómetro usa el sistema de unidades U1 y el segundo termómetro usa el sistema de unidades U2 .  

  • La idea es obtener la diferencia entre el punto de ebullición y congelación del agua en cada termómetro.
  • El número de unidades entre los puntos de congelación y ebullición de ambos termómetros muestra la misma diferencia de temperatura.

Entonces, (B1 – F1) U1 == (B2 – F2) U2 
Por método unitario, U1 = ( B2 – F2 ) / ( B1 – F1 ) U2
El valor relativo de U2 es T – F1 y U1 es T – F2
Por lo tanto, T = F2 + ( ( B2 – F2 ) / ( B1 – F1 ) ) * ( T – F1 ) 
 

A continuación se muestra la implementación del enfoque anterior:  

C++

// C++ program for above approach
#include <iostream>
using namespace std;
 
// Function to return temperature
// in the second thermometer
double temp_convert(int F1, int B1, int F2,
                    int B2, int T)
{
    float t2;
 
    // Calculate the temperature
    t2 = F2 + (float)(B2 - F2) /
                     (B1 - F1) *
                     (T - F1);
 
    return t2;
}
 
// Driver Code
int main()
{
    int F1 = 0, B1 = 100;
    int F2 = 32, B2 = 212;
    int T = 37;
    float t2;
 
    cout << temp_convert(F1, B1, F2, B2, T);
    return 0;
}
 
// This code is contributed by kirti

C

// C program for above approach
 
#include <stdio.h>
 
// Function to return temperature
// in the second thermometer
double temp_convert(int F1, int B1, int F2,
                    int B2, int T)
{
    float t2;
 
    // Calculate the temperature
    t2 = F2
         + (float)(B2 - F2)
               / (B1 - F1) * (T - F1);
 
    return t2;
}
 
// Driver Code
int main()
{
    int F1 = 0, B1 = 100;
    int F2 = 32, B2 = 212;
    int T = 37;
    float t2;
 
    printf("%.2f",
           temp_convert(F1, B1, F2, B2, T));
    return 0;
}

Java

// Java program for above approach
import java.io.*;
 
class GFG{
 
// Function to return temperature
// in the second thermometer
static double temp_convert(int F1, int B1, int F2,
                           int B2, int T)
{
    float t2;
 
    // Calculate the temperature
    t2 = F2 + (float)(B2 - F2) /
                     (B1 - F1) *
                      (T - F1);
 
    return t2;
}
 
// Driver Code
public static void main(String[] args)
{
    int F1 = 0, B1 = 100;
    int F2 = 32, B2 = 212;
    int T = 37;
    float t2;
 
    System.out.printf("%.2f",
                      temp_convert(F1, B1, F2, B2, T));
}
}
 
// This code is contributed by rishavmahato348

Python3

# Python3 program for above approach
 
# Function to return temperature
# in the second thermometer
def temp_convert(F1, B1, F2, B2, T):
     
    # Calculate the temperature
    t2 = F2 + ((float)(B2 - F2) /
                      (B1 - F1) *
                       (T - F1))
 
    return t2
 
# Driver Code
F1 = 0
B1 = 100
F2 = 32
B2 = 212
T = 37
 
print(temp_convert(F1, B1, F2, B2, T))
 
# This code is contributed by Ankita Saini

C#

// C# program for above approach
using System;
 
class GFG{
 
// Function to return temperature
// in the second thermometer
static double temp_convert(int F1, int B1, int F2,
                           int B2, int T)
{
    float t2;
 
    // Calculate the temperature
    t2 = F2 + (float)(B2 - F2) /
                     (B1 - F1) *
                      (T - F1);
 
    return t2;
}
 
// Driver Code
public static void Main()
{
    int F1 = 0, B1 = 100;
    int F2 = 32, B2 = 212;
    int T = 37;
    //float t2;
 
    Console.Write(String.Format("{0:0.##}",
    temp_convert(F1, B1, F2, B2, T)));
}
}
 
// This code is contributed by subhammahato348

Javascript

<script>
 
// JavaScript program for above approach
 
// Function to return temperature
// in the second thermometer
function temp_convert(F1, B1, F2, B2, T)
{
    var t2;
 
    // Calculate the temperature
    t2 = F2 + (B2 - F2) /
              (B1 - F1) *
               (T - F1);
 
    return t2;
}
 
// Driver Code
var F1 = 0, B1 = 100;
var F2 = 32, B2 = 212;
var T = 37;
var t2;
 
document.write(temp_convert(
    F1, B1, F2, B2, T).toFixed(2));
 
// This code is contributed by Khushboogoyal499
 
</script>
Producción: 

98.60

 

Complejidad de tiempo: O(1), ya que no hay bucle y se realiza aritmética básica.
Espacio Auxiliar: O(1), ya que no se ha ocupado ningún espacio extra.
 

Publicación traducida automáticamente

Artículo escrito por pardeepverma17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *