>> DAVID J. Malan: Como probablemente sabe, temperaturas son medidos mediante
diferentes escalas en diferentes partes do mundo.
Por exemplo, 212 graos Fahrenheit é 100 graos Celsius e 32 graos
Fahrenheit é de 0 graos Celsius.
Non sería bo se tivésemos un ordenador programa que nos permitiu
converter de, digamos, Fahrenheit para Celsius?
>> Así, podemos escribir este programa.
Imos primeiro comezar por inclúen cs50.h, de xeito que podemos utilizar unha función chamada
obter float, que, como get int, recibe unha número de usuario, pero este tempo un
número de punto flotante - un cun punto decimal.
>> Imos incluír io.h defecto para que poidamos ter acceso a
funcións como impresión f.
E imos tamén declarar principal do xeito habitual.
>> Imos preto solicitar ó usuario unha temperatura en graos Celsius.
Imos agora comezar realmente que a temperatura do usuario, en primeiro lugar por
declarar unha variable chamada f do tipo float.
Un flotador, de novo, o que significa que unha variable almacena un valor de punto flotante,
un con un punto decimal.
>> Imos asignar-lle a volta valor do get float.
E entón, imos facer un pouco de aritmética nel, primeiro declarando outro flotador
chamado C para Celsius e almacenar en C a resultado dalgunha aritmética común.
5,0 dividido por 9,0 veces F menos 32,0.
>> Imos agora imprimir o resultado deste cálculo.
por cento f -
significando un espazo reservado para valor de punto flotante -
coma C para imprimir a temperatura en graos Celsius.
Imos salvar o meu final.
Compilar con F para C. Executa o programa con punto barra F a C.
>> E imos tratar aqueles comúns temperaturas.
212 graos en Fahrenheit é de 100 graos Celsius.
32 graos en Fahrenheit é 0 graos en Celsius.
>> Agora imos refinar este programa un pouco pouco a impresión de que non tan moitos 0 do
despois de que casa decimal.
Para iso, eu vou voltar á liña 11.
E no canto de só especificar por cento f, Vou indicar en vez, por exemplo,
0,1 m, informando impresión que eu só f quere imprimir un valor de punto flotante
para un valor despois do punto decimal.
>> Imos gardar de novo o meu programa.
Recopila-lo co make F para C. Entón realizar de novo con punto barra F a C. E
imos tentar de novo con, digamos, 212, o que me dá 100,0.
>> Agora paga a pena notar que eu fixen algo moi deliberadamente na liña 9.
Observe como escribín 5 é de 5,0, 9 como 9.0, e ata 32 como 32,0.
Así, os dous primeiros de tales valores foron deliberadamente escollido para ser
valores de punto flotante, e non só porque de coherencia co resto
do meu programa -
que implica claramente flotante valores de punto -
senón porque parece que C, Se dividir un int doutra int, o
obtendo resposta que vai conseguir é si un int, aínda que só sexa
ter que xogar fora todo despois do punto decimal.
>> Noutras palabras, se eu cambiar ese 5.0 para 5 ou este 9,0-9 e logo salva
meu programa, recompilar con make F para C, e entón re-executar-lo con barra punto F
a C e escriba unha entrada como de 212, ter en conta que a resposta que eu vou
se ese tempo é realmente moi mal.
0,0 non é o grao correcto en Celsius como Fahrenheit 212.
>> Ben, o que está a suceder?
Ben, en liña 9, xa que 5 é agora un enteiro e por 9 é agora un
enteiro, o resultado matematicamente debe ser 0,5555 e así por diante.
Pero xa que o resultado, segundo a Normas de C, ten que ser un int, que
0,5555 é xogado fóra, deixando connosco con só 0.
>> Entón, ao final, acabo multiplicando bastante accidentalmente 0 veces f menos
32.0, que é non importa o que sempre me vai dar 0.
Polo tanto, lembre-se, en calquera momento mediante valores de punto flotante en proximidade
Ints, pode non necesariamente obter a resposta que espera.
E por iso teña coidado de usar, como eu fixen no valores primeiro caso de coma flotante
todo para evitar tales problemas.