Учебник Turbo Pascal. Введение - Вывод таблицы соответствия температур по Цельсию и Фаренгейту

ОГЛАВЛЕНИЕ

Вывод таблицы соответствия температур по Цельсию и Фаренгейту

Следующая программа предназначена для вывода таблицы соответствия между температурными шкалами Цельсия и Фаренгейта в интервале температур от точки замерзания воды до точки ее кипения. Температурная шкала Фаренгейта была предложена немецким физиком Габриэлем Фаренгейтом и используется в настоящее время в ряде англоязычных стран. В этой шкале при стандартном атмосферном давлении температура замерзания воды равна 32 °F, а температура кипения составляет 212 Т. В более привычной для нас шкале Цельсия аналогичными опорными точками являются, соответственно, 0 °С и 100 °С. Эти значения и используются для пересчета одних температур в другие. Нетрудно проверить, что формула для пересчета имеет вид: tf = 9/5*tc + 32, где tf — температура по Фаренгейту, a tc — температура по Цельсию.

Листинг 1.3. Вывод таблицы соответствия температур по Цельсию и Фаренгейту

program Celsius_to_Fahrenheit; 
var
    i, Celsius, Fahrenheit: Word;
begin
    Writeln('Таблица соответствия между температурными шкалами');
    Writeln('Цельсия и Фаренгейта');
    Writeln;
    for i := 0 to 20 do
    begin
        Celsius := 5 * i:
        Fahrenheit := 32 + Celsius * 9 div 5;
        Write(' С = ', Celsius);
        Write(' F = ', Fahrenheit);
        Writeln;
    end;
    Writeln('Нажмите <Enter>');
    ReadLn;
end.

Здесь есть новый элемент — операция div. В Паскале имеются две разновидности операции деления. Это обычная операция деления / и операция целочисленного деления div. В первом случае делимое и делитель могут быть любого числового типа, а во втором они должны быть целыми числами. Результат целочисленного деления — тоже целое число, которое получается отбрасыванием дробной части частного. Есть еще операция вычисления остатка от деления одного целого числа на другое — mod. В программе переменная Fahrenheit имеет целый тип Word, поэтому применение операции / привело бы к вещественному результату и, как следствие, к ошибке компиляции «Type mismatch» («Несоответствие типов»). Отмечу, что Паскаль является языком со строгим контролем за соблюдением типов. Это несомненное достоинство языка, так как, принуждая программиста быть аккуратным при работе с переменными, система программирования на Паскале избавляет его от необходимости искать ошибки на этапе выполнения программы. Это значительно более трудная проблема.

Оператор вывода Write отличается от оператора WriteLn тем, что при выводе значений не происходит переход на следующую строку. В нашем случае оба числа будут выведены в одной строке.