Void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float C,F;
cout<<"Перевід температури в градусах за Фаренгейтом в градуси Цельсія\n\n";
cout<<"Введіть початкові дані:\n";
cout<<"\tТемпература за Фаренгейтом (град) -> ";
cin>>F;
C=5/9*(F-32);
cout<<"\nТемпература за Фаренгейтом: "<<F<<"; ";
cout<<"в градусах Цельсія: "<<C<<endl<<endl;
}
Рядок #include <iostream.h> - це директива препроцесора, по якій до початкового|вихідного| тексту програми підключається заголовний файл <iostream.h>. У цьому файлі описаний набір класів для управління введенням/виводом|висновком|, стандартні об'єкти cin для введення з клавіатури і|та| cout для виводу|висновку| на екран, а також операції поміщення в потік << і|та| витягання|видобування| з|із| потоку >>.
Рядок #include <windows.h> - підключається заголовний файл <windows.h>, у якому знаходиться інформація, необхідна для того, що б у вікні виводу|висновку| могли відображатися російські символи.
Програма на C++ складається з|із| функцій. Функція - це іменована послідовність операторів, яка складається із|із| заголовка і|та| тіла.
Рядок, void main() є заголовком головної|чільної| (в даному випадку і|та| єдиної) функції програми. Ім'я її main, що вказує|показуючий|, що саме з неї необхідно починати|зачинати| виконання програми. За ім'ям функції в дужках слідує|прямує| список формальних параметрів. В даному випадку він порожній|пустий|, але|та| дужки потрібні|необхідні| для того, щоб компілятор міг розпізнати, що це саме функція, а не інша конструкція мови|язика|.
Далі йде тіло функції - |цебто| ті оператори, які потрібно виконати.
Для зберігання початкових|вихідних| даних і|та| результатів потрібно виділити місце в оперативній пам'яті. У нашій програмі потрібно зберігати два значення: F і|та| C, тому в операторові визначаються дві змінні.
При описі будь-якої змінної треба вказати її тип|типа|, щоб компілятор знав, скільки виділити місця в пам'яті, як розшифровувати її внутрішнє представлення|виставу|, а також які дії можна буде виконати з|із| цією величиною. Наприклад, для дійсних чисел в пам'яті зберігається мантиса і|та| порядок|лад|, а цілі представляються просто в двійковій формі, тому внутрішнє представлення одного і|та| того ж цілого і|та| дійсного числа буде різним. Для дій з|із| цілими і|та| дійсними величинами формуються різні набори машинних команд.
Оскільки температура може набувати не лише|не те що| цілих значень, для змінних вибраний дійсний тип float. Можна також вибрати тип|типа| double, який дозволяє представляти|уявляти| дійсні числа більшого діапазону значень і з|із| більшою точністю.
У загальному|спільному| випадку тип змінних вибирається виходячи з можливого діапазону значень і|та| необхідної точності представлення даних. Цілочисельні операції виконуються набагато швидше.
Далі йде оператор виведення назви програми :
cout<<"Перевід температури в градусах за Фаренгейтом в градуси Цельсія\n\n";
Стандартний об'єкт, за допомогою якого виконується вивід|висновок| на екран – це cout. Йому за допомогою операції << передається те, що ми хочемо вивести. За допомогою управляючого символу \n на екран будуть виведено два пустих рядки.
Для того, щоб користувач програми знав, в який момент потрібно ввести|запроваджувати| з|із| клавіатури дані, застосовується запрошення до введення:
cout<<"Введіть початкові дані:\n\tТемпература за Фаренгейтом (град) -> ";
На екран виводиться вказаний в операторові рядок символів. Символ \n переводить|перекладає| курсор на наступний|такий| рядок, а \t - робить|чинить| відступ (табуляція).
Цей рядок можна було б записати н.ч.:
cout<<"Введіть початкові дані :"<<endl<<"\tТемпература за Фаренгейтом (град) -> ";
Для виведення декількох елементів використовується ланцюжок операцій виводу <<. Для перехода на наступний рядок замість символу \n використовується слово endl. Це - маніпулятор; він управляє (маніпулює) стандартним об'єктом cout.
У рядку
cin>>F;
виконується введення з клавіатури одного числа в змінну F за допомогою об'єкту cin і|та| операції витягання|видобування| >>. Якщо потрібно ввести декілька величин, використовується ланцюжок операцій >>. В процесі введення число перетвориться з|із| послідовності символів, набраних на клавіатурі, у внутрішнє представлення дійсного числа і поміщається в елемент пам'яті, зарезервовану для змінної F.
У операторові
C=5./9*(F - 32);
обчислюється|вичисляє| вираз, записаний праворуч від операції присвоєння, і|та| результат заноситься ( присвоюється) у виділену для цій змінній пам'ять. Вираз - це правило для обчислення|підрахунку| деякого значення, можна назвати|накликати| його формулою. Порядок|лад| обчислень визначається пріоритетом операцій.
Основні правила відповідають прийнятим в математиці: віднімання має нижчий пріоритет, ніж множення, тому для того, щоб воно було виконане раніше, відповідна частина|частка| виразу заключається в дужки. Ділення|поділка| і|та| множення мають однаковий пріоритет і|та| виконуються зліва направо, тобто|цебто| спочатку ціла константа 5 буде поділена на цілу константу 9, а потім результат цієї операції помножений на результат віднімання числа 32 з|із|і змінної F.
Відладка програми
Під час відладки необхідно|треба| запустити програму на виконання кілька разів, задаючи різні значення температури. Можна задавати і цілі числа - вони будуть автоматично перетворені в дійсну форму.
Можна побачити, що результат виконання програми завжди виявляється|опиняється| рівним нулю! Це відбувається|походить| із-за|через| способу обчислення|підрахунку| виразу. Константи 5 і|та| 9 мають цілий тип|типа|, тому результат їх ділення|поділки| також цілочисельний. Округлення не відбувається|походить|, дробова частина|частка| завжди відкидається. Для виправлення помилки необхідно|треба| записати хоч би|хоча би| одну з констант у вигляді дійсного числа, наприклад:
С = 5. / 9 * (F - 32);
Дійсна константа "5". за умовчанням має тип|типа| double, і|та| при виконанні ділення|поділки| відбувається|походить| автоматичне перетворення до цього ж типу|типа| іншої константи, а потім і|та| результату віднімання.
Можна записати цей вираз змінивши|зраджувати| порядок|лад| дій :
C = 5 * (F - 32) /9;
В цьому випадку буде виконано перетворення констант до типу|типа| float, як до найменш довгому з|із| тих, що беруть участь у виразі.
Перед запуском програми необхідно|треба| мати тестові приклади|зразки|, що містять|утримують| початкові|вихідні| дані і|та| очікувані|сподівані| результати. Кількість цих прикладів|зразків| залежить від алгоритму.
Приклад 3|зразок|: Написати функцію користувача, яка переводить|перекладає| температуру в градусах за Фаренгейтом в градуси Цельсія .
Розробка будь- якої функції ведеться в тому ж порядку|ладу|, що і розробка програми в цілому. Спочатку визначається інтерфейс функції, тобто які значення подаються їй на вхід і що повинне вийти в результаті. Потім розробляється структура даних (тип даних), в яких зберігатимуться ці і проміжні значення; потім складається алгоритм, програма і тестові приклади.
Алгоритм роботи програми залишається тим же. Обчислення|підрахунок| температури за Цельсієм для одного значення аргументу оформимо у вигляді окремої функції.
Нашій функції вимагається набути ззовні значення температури по Форингейту. Ця величина, а також результат мають тип|типа| float. Тому, заголовок функції може виглядати так:
float Cels_Fahr(double F)
Результат обчислення|підрахунку| виразу збережемо в змінній C, яка має бути описана усередині|всередині| функції, оскільки поза|зовні| нею вона не потрібна (рекомендується описувати змінні так, щоб їх зона видимості була мінімальною з|із| можливих).
Текст програми :
#include <iostream.h>
#include <windows.h>
double Cels_Fahr(float F)
{
float C;
C= 5./9*(F-32);
return C;
}
