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

С++ ?


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

//

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

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

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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