Svoboda Опубликовано 11 сентября, 2005 Жалоба Поделиться Опубликовано 11 сентября, 2005 // // Программа для преобразования // градусов Цельсия в градусы Фаренгейта: // 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 в чем фишка ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 сентября, 2005 Жалоба Поделиться Опубликовано 11 сентября, 2005 Svoboda: Фишка в понятности происхождения коэффициента. В формуле написано 212-32, если в программе написать 180, то человек, читающий программу, должен будет догадываться, откуда взялись эти 180. Для компилятора обе записи 212-32 и 180 одинаковы, программу это не замедлит, разность вычислит сам компилятор еще на этапе компиляции программы и сам введет в код программы число 180. А 212 и 32 - точки кипения и замерзания воды по Фаренгейту, их разница равна по Цельсию 100°, отсюда и коэффициент. Важнейшее свойство программы - ее понятность и самодокументированность. Сопровождение программы всегда занимает больше времени, чем ее написание. Поэтому программы пишутся не только для компьютера, но и для чтения их людьми. В данном случае пришлось бы описывать, откуда получается 180, в комментариях, что дольше и занимает больше места. P.S. Замечу, что автор программы не довел дело до конца. Понятнее было бы определить nNFactor как (212 - 32)/100, конечно, уже не как целое число, тогда у него был бы более ясный смысл - отношение единиц измерения. А так это ни то, ни се: количество градусов Фаренгейта, приходящееся на 100 градусов Цельсия. Лучше избегать введения промежуточных переменных, не имеющих ясного смысла. Вообще-то эту формулу яснее было бы даже запрограммировать сразу, целиком. Ссылка на комментарий Поделиться на другие сайты Поделиться
Svoboda Опубликовано 12 сентября, 2005 Автор Жалоба Поделиться Опубликовано 12 сентября, 2005 Спасибо за помощь ,я всё понил . Ссылка на комментарий Поделиться на другие сайты Поделиться
SanChel Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 При коипилирование данного кода (приведенного выше) с помощью 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 и с чем его едят? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ray Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 Для начала смени раширение файла с текстом программы с .c на .cpp. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 SanChel: Подробное объяснение Borland, почему появляется это сообщение - на сайте Borland на этой странице. Причина - в текст программы включен заголовочный файл STDCOMP.H, содержащий выражения, понимаемые только C++. Устраняется переходом с компиляции в C на компиляцию в C++ способом, указанным Ray. Ссылка на комментарий Поделиться на другие сайты Поделиться
SanChel Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 Оперативно=), Большое спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
T-SMV Опубликовано 12 декабря, 2005 Жалоба Поделиться Опубликовано 12 декабря, 2005 А есть ли какие нибудь преимущества чистого С над С++ ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 декабря, 2005 Жалоба Поделиться Опубликовано 12 декабря, 2005 T-SMV: C - часть C++, его более ранняя версия. Отличается отсутствием нескольких возможностей, в первую очередь средств поддержки объектно-ориентированной технологии программирования (классы, перегрузка операций и т.д.). Преимуществом это считать трудно, а больше отличий нет, за исключением очень небольших изменений синтаксиса. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти