Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок [Цикл уроков программиста] 6. Программа "Fahrenheit to Celsius"

Статус
В этой теме нельзя размещать новые ответы.

A_Trigger

Умник
В данной статье мы продолжим знакомиться с C++. Так как мы пока ещё очень мало знаем о программировании, то примеров из компьютерных игр пока не будет. Вместо этого мы будем считать градусы, что тоже, согласитесь, неплохо.
Добавление проекта в решение "solution"

Для начала нам нужно создать ещё один проект. Откройте IDE и выберите решение solution. Выберите в меню File → New → Project (Файл → Создать → Проект) или на панели инструментов щёлкните кнопку New Project.

В Project type должно быть выбрано Win32, в Templates - Win32 Console Application.

В поле Name (имя) пишем Fahrenheit to Celsius, а в выпадающем списке Solution (решение) выберите Add to solution (Добавить к решению). Жмём OK.

В появившемся помошнике жмём Next, а дальше для Application type (Тип приложения)выбираем Console application (Консольное приложение). В Addition options (Дополнительные свойства) ставим флажок напротив Empty project (Пустой проект). И нажимаем Finish.

В обозревателе решений появился новый проект. Сейчас нам нужно добавить в него файл. Жмём CTRL+N, выбираем C++ File (.cpp) и нажимаем Open.

В редакторе кода отобразится содержимое файла. Пока что тут пусто. В меню выбираем пункт File → Move Source1.cpp into -> 2. Fahrenheit to Celsius. В появившемся диалоговом окне Save file As в поле для имени впишите - main.cpp и нажмите Сохранить.
Программа Fahrenheit to Celsius

Программа сначала печатает значения по Фаренгейту для нуля и ста градусов Цельсия. Затем просит ввести пользователя значение температуры по Фаренгейту и переводит его в значение по Цельсию.

Полный листинг программы можно найти в конце урока. Ниже в примере приводится фрагмент кода идущий сразу после директивы using namspace:
PHP:
#define BOILING_POINT_F 212

int main()
{
  setlocale(LC_CTYPE,"Russian");
  const int FREEZE_POINT_F = 32;
  float f, c;

  cout << "0 C = " << FREEZE_POINT_F << " F\n";
  cout << "100 C = " << BOILING_POINT_F << " F\n\n";

cout << "Введите температуру по Фаренгейту: ";
cin >> f;

c = (f-32)*5/9;
cout << "Температура по Цельсию равна " << c << "\n";

_getch();
return 0;
}
Приступим к осмотру пациента. Прежде всего мы добавили ещё один заголовочный файл - clocale. Он нужен нам для того, чтобы использовать функцию setlocale() в программе, которая в свою очередь позволяет выводить текст в консоли на русском языке.
Константы

Константы - это какие-то величины, которые нельзя изменять. Например, число Pi = 3,14, является константой. В С++, если вам нужно какое-то значение, которое будет постоянным во время выполнения программы, его лучше сделать константным. Сделать это можно двумя способами. И оба два представлены в нашей программе.

Первый. До определения функции main(), использовать директиву препроцессора #define:
PHP:
#define BOILING_POINT_F 212
BOILING_POINT_F - это идентификатор (или имя) константы. Идентификатор позволяет использовать (ссылаться на) константу в программе. Этой константе пррисваивается значение 212.

Второй (более предпочтительный) способ объявления констант. Использование ключевого слова const:
PHP:
const int FREEZE_POINT_F = 32;
FREEZE_POINT_F - это идентификатор (имя). Ключевое слово int - это тип данных. int от integer (целое число). Данной константе нельзя присвоить никаких данных, кроме целого числа.

Например следующие примеры верны:
PHP:
const int FREEZE_POINT_F = 12;
const int FREEZE_POINT_F = 0;
const int FREEZE_POINT_F = 3282;
а вот эти, нет:
PHP:
const int FREEZE_POINT_F = 12.2; // для использования этих значений поменяйте
const int FREEZE_POINT_F = 0.5;  // int на float или в последнем случае на
const int FREEZE_POINT_F = 'Я';  // char
Обратите внимание на отличие синтаксиса при использовании #define и const:
#define расположена за пределами определения функции main(), а const внутри.
После директивы #define нет точки с запятой, это обычно для директив препроцессора.
В #define не используется оператор присваивания =, а идентификатор отделяется от значения пробелом, в отличии от const, где идентификатор и значение разделены этим знаком.
И последнее: при использовании const обязательно нужно указывать какого типа константа (целое число - int, вещественное - float, строка текста).
Поддержка русского языка

В первой программе мы выводили текст на английском языке. Консольные приложения не поддерживают русский язык. И чтобы это исправить нам нужна функция setlocale():
PHP:
setlocale(LC_CTYPE,"Russian");
В этом операторе происходит вызов функции setlocale(). То что это функция, можно догадаться по скобкам. То что находится в скобках мы пока обсуждать не будем. Просто если хотите использовать в своих программах русский язык, добавтье заголовочный файл clocale с помощью директивы #include, а в теле main() вызовите функцию setlocale(LC_CTYPE,"Russian").
Использование переменных

С константами мы разобрались. Но что если нам нужно использовать величины, которые будут изменяться во время выполнения программы? Например, данные которые введёт пользователь? Для этого как раз и существуют переменные (variable - переменная). Значения переменных могут меняться во время выполнения программы

Перед тем как использовать переменные, их нужно сначала: обьявить, определить, инициализировать.

Обьявление и определение происходят в одной строке:
PHP:
float f, c;
Здесь мы обьявили и определили две вещественные (числа с десятичной запятой) переменные f - для температуры по Фаренгейту и c - Для температуры по Цельсию.

При обьявлении переменной компилятор узнаёт о её существовании.
При определении, операционная система (ОС) выделяет место в памяти для переменной.
При инициализации, переменной присваивается начальное значение.
Все три действия можно выполнить в одной строке, например:
PHP:
int var = 0; // целой переменной var присваивается ноль
Итак, чтобы создать переменную, нужно указать тип данных и идентификатор (имя). Разве это не просто?
Стандартный ввод

Следующий оператор, который мы пока не знаем:
PHP:
cin >> f;
cin - обьект для работы с ввводом с клавиатуры. Операция >> - это операция извлечения. Она помещает в то что стоит справа, значение из левой своей части. То есть в переменную f будет помещено то, что содержится в cin. А содержаться в cin будет то, что пользователь введёт с клавиатуры во время работы программы.
Использование переменных

Следующий оператор довольно простой:
PHP:
c = (f-32)*5/9;
Здесь высчитываются градусы по Цельсию исходя из значения температуры по Фаренгейту. Операции разности, произведения, деления и скобок используются точно так же как и в математике. Знак равно = называется оператором присваивания. То что находится слева принимает значение того что находится справа. Т.е. переменной c присваивается значение выражения (f-32)*5/9.
Каскадирование операции вставки <<

И последний оператор, который мы обсудим:
PHP:
cout << "Температура по Цельсию равна " << c << "\n";
Мы уже встречались и с обьектом cout и с операцией <<. Но здесь используется каскадирование операции вставка <<. Сначала в cout копируется константная строка, затем переменная c и затем ещё одна константая строка содержащая символ конца строки.
Запуск программы
Теперь давайте запустим программу. Нажимаем F7, а затем F5. Но у нас запустилась программа hello world. Закройте её. В обозревателе решений вызовите контекстное меню для Fahrenheit to Celsius (Щёлкните на названии проекта правой кнопкой мыши) и выберите Set As StartUp Project (Сделать проектом по умолчанию). Попробуйте снова запустить проект, на этот раз должно получиться.

На этом всё.

Упражнения:
1. Измените программу так, чтобы она преобразовывала значения по Цельсию в градусы по Фаренгейту.
Формула: f = c*9/5+32
2. Добавьте к решению subscribe новый проект Area of a circle. Добавьте к проетку одноимённый файл. Напишите программу вычисляющую площадь окружности. Пользователь должен ввести радиус круга. Создайте константу PI = 3.1415 используя const. формула площади окружности: area = PI * rad * rad, где rad - радиус окружности.


PHP:
// Программа Fahrenheit to Celsius

#include <conio.h>
#include <iostream>
#include <clocale>

using namespace std;

#define BOILING_POINT_F 212

int main()
{
   setlocale(LC_CTYPE,"Russian");
   const int FREEZE_POINT_F = 32;
   float f, c;

   cout << "0 C = " << FREEZE_POINT_F << " F\n";
   cout << "100 C = " << BOILING_POINT_F << " F\n\n";

   cout << "Введите температуру по Фаренгейту: ";
   cin >> f;
   c = (f-32)*5/9;
   cout << "Температура по Цельсию равна " << c << "\n";

   _getch();
   return 0;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу