Перейти к содержанию
СофтФорум - всё о компьютерах и не только

С++ ?


Рекомендуемые сообщения

//

// Программа для преобразования

// градусов Цельсия в градусы Фаренгейта:

// Fahrenheit = NCelsius * (212 - 32)/100 + 32

//

#include <stdio.h>

#include <iostream.h>

int main(int nNumberofArgs, char* pszArgs[])

{

// Введите температуру в градусах Цельсия

int nNCelsius;

cout << "Введите температуру по Цельсию: ";

cin >> nNCelsius;

// для приведенной формулы преобразования

//вычислим преобразующий множитель

int nNFactor;

nNFactor = 212 - 32;

// используем вычисленный множитель для

// преобразования градусов Цельсия в

// градусы Фаренгейта

int nFahrenheit;

nFahrenheit = nNFactor * nNCelsius/100 + 32;

// вывод результатов

cout << "Температура по Фаренгейту: ";

cout << nFahrenheit;

return 0;

}

Почему он переменную nNFactor подрозумивает ,как 212-32 не легче просто 180 в чем фишка ?

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Фишка в понятности происхождения коэффициента. В формуле написано 212-32, если в программе написать 180, то человек, читающий программу, должен будет догадываться, откуда взялись эти 180.

Для компилятора обе записи 212-32 и 180 одинаковы, программу это не замедлит, разность вычислит сам компилятор еще на этапе компиляции программы и сам введет в код программы число 180.

А 212 и 32 - точки кипения и замерзания воды по Фаренгейту, их разница равна по Цельсию 100°, отсюда и коэффициент.

Важнейшее свойство программы - ее понятность и самодокументированность. Сопровождение программы всегда занимает больше времени, чем ее написание. Поэтому программы пишутся не только для компьютера, но и для чтения их людьми. В данном случае пришлось бы описывать, откуда получается 180, в комментариях, что дольше и занимает больше места.

P.S. Замечу, что автор программы не довел дело до конца. Понятнее было бы определить nNFactor как (212 - 32)/100, конечно, уже не как целое число, тогда у него был бы более ясный смысл - отношение единиц измерения. А так это ни то, ни се: количество градусов Фаренгейта, приходящееся на 100 градусов Цельсия. Лучше избегать введения промежуточных переменных, не имеющих ясного смысла. Вообще-то эту формулу яснее было бы даже запрограммировать сразу, целиком.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

При коипилирование данного кода (приведенного выше) с помощью Borland Compiler C++ на экран выдается вот такое содержание:

C:\Borland\BCC55\Bin>runbor.bat bcc32 celsius.c

C:\Borland\BCC55\Bin>path c:\borland\bcc55\bin;C:\WINDOWS\system32;C:\WINDOWS;C:

\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Adobe\AGL

C:\Borland\BCC55\Bin>bcc32 celsius.c

Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland

Celsius.c:

Fatal F1003 C:\BORLAND\BCC55\INCLUDE\stdcomp.h 5: Error directive: Must use C++

for STDCOMP.H

*** 1 errors in Compile ***

C:\Borland\BCC55\Bin>

Я так понимаю разгадка вот в этом Error directive: Must use C++ for STDCOMP.H должны испоьзовать С++ для STDCOMP.H (если не ошибаюсь). Так вот, что это такое STDCOMP.H и с чем его едят?

Ссылка на комментарий
Поделиться на другие сайты

SanChel:

Подробное объяснение Borland, почему появляется это сообщение - на сайте Borland на этой странице. Причина - в текст программы включен заголовочный файл STDCOMP.H, содержащий выражения, понимаемые только C++. Устраняется переходом с компиляции в C на компиляцию в C++ способом, указанным Ray.

Ссылка на комментарий
Поделиться на другие сайты

T-SMV:

C - часть C++, его более ранняя версия. Отличается отсутствием нескольких возможностей, в первую очередь средств поддержки объектно-ориентированной технологии программирования (классы, перегрузка операций и т.д.). Преимуществом это считать трудно, а больше отличий нет, за исключением очень небольших изменений синтаксиса.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...