MAC0122  Princípios de Desenvolvimento de Algoritmos
Home  |  Administração  |  Livros  |  WWW  |  Diário  |  Tarefas

 

Java versus C: um exemplo

Esta página procura mostrar como é fácil aprender a linguagem C se você já conhece Java.  Para discutir essa transição, vamos reexaminar a aula 23 de MAC0110 no semestre passado.

 

Conversor de temperaturas

Segue um programa Java que converte temperaturas medidas na escala Fahrenheit para a escala Celsius e vice-versa:

// Programa conversor de temperaturas                    
// ----------------------------------                    
// Este programa converte graus Fahrenheit
// em graus Celsius e vice-versa.
//////////////////////////////////////////

public class Conversor
{
   static double celsiusParaFahrenheit (double c)
   {
      return 9.0 * c / 5.0 + 32.0;
   }
 
   static double fahrenheitParaCelsius (double f)
   {
      return 5.0 * (f - 32.0) / 9.0;
   }
 
   public static void main (String[] args)
   {
      double far, cel;
      
      System.out.print ("Temperatura em graus Fahrenheit: ");
      far = SavitchIn.readDouble ();
      cel = fahrenheitParaCelsius (far);
      System.out.println ("igual a " + cel + " graus Celsius");
     
      System.out.print ("Temperatura em graus Celsius: ");
      cel = SavitchIn.readDouble ();
      far = celsiusParaFahrenheit (cel);
      System.out.println ("igual a " + far + " graus Fahrenheit");
   }
}

Eis o mesmo programa escrito em linguagem C:

/* Programa conversor de temperaturas                    
// ----------------------------------                    
// Este programa converte graus Fahrenheit
// em graus Celsius e vice-versa.
/////////////////////////////////////// */

#include <stdio.h>
double celsiusParaFahrenheit (double c);
double fahrenheitParaCelsius (double f);

int main (void)
{
   double far, cel;
   
   printf ("Temperatura em graus Fahrenheit: ");
   scanf ("%lf", &far);
   cel = fahrenheitParaCelsius (far);
   printf ("igual a %.1f graus Celsius\n", cel);

   printf ("\nTemperatura em graus Celsius: ");
   scanf ("%lf", &cel);
   far = celsiusParaFahrenheit (cel);
   printf ("igual a %.1f graus Fahrenheit\n", far);

   return 0;
}

double celsiusParaFahrenheit (double c)
{
   return 9.0 * c / 5.0 + 32.0;
}

double fahrenheitParaCelsius (double f)
{
   return 5.0 * (f - 32.0) / 9.0;
}

Fácil, não?  Num certo sentido C é mais fácil que Java, pois não há classes (ou melhor, há uma só classe e ela é implícita). A linguagem C é de nível mais baixo (mais próxima da máquina) que Java.

Preste atenção aos seguintes detalhes:


Veja a tabela Java-versus-C
URL of this site: www.ime.usp.br/~pf/mac0122-2003.2/
Last modified: Tue Jun 30 13:46:56 BRT 2015
Paulo Feofiloff
IME-USP